Paket | mx.messaging |
Sınıf | public class Channel |
Miras Alma | Channel EventDispatcher Object |
Uygular | IMXMLObject |
Alt Sınıflar | PollingChannel |
Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Channels are specific protocol-based conduits for messages sent between
MessageAgents and remote destinations.
Preconfigured channels are obtained within the framework using the
ServerConfig.getChannel()
method.
You can create a Channel directly using the new
operator and
add it to a ChannelSet directly.
Channels represent a physical connection to a remote endpoint. Channels are shared across destinations by default. This means that a client targetting different destinations may use the same Channel to communicate with these destinations.
Note: This class is for advanced use only. Use this class for creating custom channels like the existing RTMPChannel, AMFChannel, and HTTPChannel.
Özellik | Tanımlayan: | ||
---|---|---|---|
authenticated : Boolean [salt okunur]
Indicates if this channel is authenticated. | Channel | ||
channelSets : Array [salt okunur]
Provides access to the ChannelSets connected to the Channel. | Channel | ||
connected : Boolean [salt okunur]
Indicates whether this channel has established a connection to the
remote destination. | Channel | ||
connectTimeout : int
Provides access to the connect timeout in seconds for the channel. | Channel | ||
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | ||
endpoint : String [salt okunur]
Provides access to the endpoint for this channel. | Channel | ||
failoverURIs : Array
Provides access to the set of endpoint URIs that this channel can
attempt to failover to if the endpoint is clustered. | Channel | ||
id : String
Provides access to the id of this channel. | Channel | ||
protocol : String [salt okunur]
Provides access to the protocol that the channel uses. | Channel | ||
reconnecting : Boolean [salt okunur]
Indicates whether this channel is in the process of reconnecting to an
alternate endpoint. | Channel | ||
recordMessageSizes : Boolean [salt okunur]
Channel property determines the level of performance information injection - whether
we inject message sizes or not. | Channel | ||
recordMessageTimes : Boolean [salt okunur]
Channel property determines the level of performance information injection - whether
we inject timestamps or not. | Channel | ||
requestTimeout : int
Provides access to the default request timeout in seconds for the
channel. | Channel | ||
uri : String
Provides access to the URI used to create the whole endpoint URI for this channel. | Channel |
Özellik | Tanımlayan: | ||
---|---|---|---|
shouldBeConnected : Boolean [salt okunur]
Indicates whether this channel should be connected to its endpoint. | Channel |
Yöntem | Tanımlayan: | ||
---|---|---|---|
Constructs an instance of a generic Channel that connects to the
specified endpoint URI. | Channel | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
EventDispatcher nesnesi olan bir olay dinleyici nesnesini, dinleyicinin bir olayın bildirimini alması için kaydeder. | EventDispatcher | ||
Subclasses should override this method to apply any settings that may be
necessary for an individual channel. | Channel | ||
Connects the ChannelSet to the Channel. | Channel | ||
Disconnects the ChannelSet from the Channel. | Channel | ||
Olay akışına bir olay gönderir. | EventDispatcher | ||
EventDispatcher nesnesinin belirli bir olay türü için kayıtlı dinleyicisi olup olmadığını kontrol eder. | EventDispatcher | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Sends a CommandMessage to the server to logout if the Channel is connected. | Channel | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
EventDispatcher nesnesinden bir dinleyiciyi kaldırır. | EventDispatcher | ||
Sends the specified message to its target destination. | Channel | ||
Sets the credentials to the specified value. | Channel | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
Belirtilen nesnenin temel değerini döndürür. | Object | ||
Bir olay dinleyicisinin bu EventDispatcher nesnesiyle mi, yoksa onun belirtilen olay türüne yönelik üst öğelerinden biriyle mi kayıtlı olduğunu kontrol eder. | EventDispatcher |
Yöntem | Tanımlayan: | ||
---|---|---|---|
Applies the client load balancing urls if they exists. | Channel | ||
Processes a failed internal connect and dispatches the
FAULT event for the channel. | Channel | ||
Processes a successful internal connect and dispatches the
CONNECT event for the Channel. | Channel | ||
Handles a connect timeout by dispatching a ChannelFaultEvent. | Channel | ||
Processes a failed internal disconnect and dispatches the
FAULT event for the channel. | Channel | ||
Processes a successful internal disconnect and dispatches the
DISCONNECT event for the Channel. | Channel | ||
Handles a change to the guard condition for managing initial Channel connect for the application. | Channel | ||
Returns the appropriate MessageResponder for the Channel's
send() method. | Channel | ||
Connects the Channel to its endpoint. | Channel | ||
Disconnects the Channel from its endpoint. | Channel | ||
Sends the Message out over the Channel and routes the response to the
responder. | Channel |
Olay | Özet | Tanımlayan: | ||
---|---|---|---|---|
[broadcast olayı] Flash Player veya AIR uygulaması işletim sistemi odağına gelip etkin olduğunda gönderilir. | EventDispatcher | |||
Dispatched after the channel has connected to its endpoint. | Channel | |||
Dispatched after the channel has disconnected from its endpoint. | Channel | |||
Dispatched after the channel has faulted. | Channel | |||
[broadcast olayı] Çalışan Flash Player veya AIR uygulaması sistem odağını kaybettiğinde ve etkin olmayan duruma geldiğinde gönderilir. | EventDispatcher | |||
Dispatched when a channel receives a message from its endpoint. | Channel | |||
Dispatched when a property of the channel changes. | Channel |
Sabit | Tanımlayan: | ||
---|---|---|---|
CONNECT_TIMEOUT_SECONDS : String = "connect-timeout-seconds" [statik] | Channel | ||
ENABLE_SMALL_MESSAGES : String = "enable-small-messages" [statik] | Channel | ||
FALSE : String = "false" [statik] | Channel | ||
RECORD_MESSAGE_SIZES : String = "record-message-sizes" [statik] | Channel | ||
RECORD_MESSAGE_TIMES : String = "record-message-times" [statik] | Channel | ||
REQUEST_TIMEOUT_SECONDS : String = "request-timeout-seconds" [statik] | Channel | ||
SERIALIZATION : String = "serialization" [statik] | Channel | ||
TRUE : String = "true" [statik] | Channel |
authenticated | özellik |
channelSets | özellik |
channelSets:Array
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Provides access to the ChannelSets connected to the Channel.
Uygulama
public function get channelSets():Array
connected | özellik |
connected:Boolean
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Indicates whether this channel has established a connection to the remote destination.
Bu özellik veri ciltleme kaynağı olarak kullanılabilir. Bu özellik değiştirildiğinde, propertyChange
olayını gönderir.
Uygulama
public function get connected():Boolean
connectTimeout | özellik |
connectTimeout:int
Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Provides access to the connect timeout in seconds for the channel. A value of 0 or below indicates that a connect attempt will never be timed out on the client. For channels that are configured to failover, this value is the total time to wait for a connection to be established. It is not reset for each failover URI that the channel may attempt to connect to.
Uygulama
public function get connectTimeout():int
public function set connectTimeout(value:int):void
endpoint | özellik |
failoverURIs | özellik |
failoverURIs:Array
Provides access to the set of endpoint URIs that this channel can attempt to failover to if the endpoint is clustered.
This property is automatically populated when clustering is enabled. If you don't use clustering, you can set your own values.
Uygulama
public function get failoverURIs():Array
public function set failoverURIs(value:Array):void
id | özellik |
protocol | özellik |
protocol:String
[salt okunur] Provides access to the protocol that the channel uses.
Note: Subclasses of Channel must override this method and return a string that represents their supported protocol. Examples of supported protocol strings are "rtmp", "http" or "https".
Uygulama
public function get protocol():String
reconnecting | özellik |
recordMessageSizes | özellik |
recordMessageSizes:Boolean
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Channel property determines the level of performance information injection - whether we inject message sizes or not.
Uygulama
public function get recordMessageSizes():Boolean
recordMessageTimes | özellik |
recordMessageTimes:Boolean
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Channel property determines the level of performance information injection - whether we inject timestamps or not.
Uygulama
public function get recordMessageTimes():Boolean
requestTimeout | özellik |
requestTimeout:int
Provides access to the default request timeout in seconds for the channel. A value of 0 or below indicates that outbound requests will never be timed out on the client.
Request timeouts are most useful for RPC style messaging that requires a response from the remote destination.
Uygulama
public function get requestTimeout():int
public function set requestTimeout(value:int):void
shouldBeConnected | özellik |
shouldBeConnected:Boolean
[salt okunur] Indicates whether this channel should be connected to its endpoint. This flag is used to control when fail over should be attempted and when disconnect notification is sent to the remote endpoint upon disconnect or fault.
Uygulama
protected function get shouldBeConnected():Boolean
uri | özellik |
Channel | () | Yapıcı |
public function Channel(id:String = null, uri:String = null)
Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Constructs an instance of a generic Channel that connects to the specified endpoint URI. Note: The Channel type should not be constructed directly. Instead create instances of protocol specific subclasses such as RTMPChannel or AMFChannel.
Parametrelerid:String (default = null ) — The id of this channel.
| |
uri:String (default = null ) — The endpoint URI for this channel.
|
applyClientLoadBalancingSettings | () | yöntem |
protected function applyClientLoadBalancingSettings(props:XML):void
Applies the client load balancing urls if they exists. It randomly picks
a url from the set of client load balancing urls and sets it as the channel's
main url; then it assigns the rest of the urls as the failoverURIs
of the channel.
Parametreler
props:XML — The properties section of the XML fragment of the services-config.xml
file for this channel.
|
applySettings | () | yöntem |
public function applySettings(settings:XML):void
Subclasses should override this method to apply any settings that may be
necessary for an individual channel.
Make sure to call super.applySettings()
to apply common settings for the channel. This method is used primarily in Channel subclasses.
Parametreler
settings:XML — XML fragment of the services-config.xml file for this channel.
|
connect | () | yöntem |
public final function connect(channelSet:ChannelSet):void
Connects the ChannelSet to the Channel. If the Channel has not yet
connected to its endpoint, it attempts to do so.
Channel subclasses must override the internalConnect()
method, and call the connectSuccess()
method once the
underlying connection is established.
Parametreler
channelSet:ChannelSet — The ChannelSet to connect to the Channel.
|
connectFailed | () | yöntem |
protected function connectFailed(event:ChannelFaultEvent):void
Processes a failed internal connect and dispatches the
FAULT
event for the channel.
If the Channel has failoverURI
values, it will
attempt to reconnect automatically by trying these URI values in order until
a connection is established or the available values are exhausted.
Parametreler
event:ChannelFaultEvent — The ChannelFaultEvent for the failed connect.
|
connectSuccess | () | yöntem |
protected function connectSuccess():void
Processes a successful internal connect and dispatches the
CONNECT
event for the Channel.
connectTimeoutHandler | () | yöntem |
protected function connectTimeoutHandler(event:flash.events:TimerEvent):void
Handles a connect timeout by dispatching a ChannelFaultEvent.
Subtypes may overide this to shutdown the current connect attempt but must
call super.connectTimeoutHandler(event)
.
Parametreler
event:flash.events:TimerEvent — The timer event indicating that the connect timeout has been reached.
|
disconnect | () | yöntem |
public final function disconnect(channelSet:ChannelSet):void
Disconnects the ChannelSet from the Channel. If the Channel is connected to its endpoint and it has no more connected ChannelSets it will internally disconnect.
Channel subclasses need to override the
internalDisconnect()
method, and call the
disconnectSuccess()
method when the underlying connection
has been terminated.
Parametreler
channelSet:ChannelSet — The ChannelSet to disconnect from the Channel.
|
disconnectFailed | () | yöntem |
protected function disconnectFailed(event:ChannelFaultEvent):void
Processes a failed internal disconnect and dispatches the
FAULT
event for the channel.
Parametreler
event:ChannelFaultEvent — The ChannelFaultEvent for the failed disconnect.
|
disconnectSuccess | () | yöntem |
protected function disconnectSuccess(rejected:Boolean = false):void
Processes a successful internal disconnect and dispatches the
DISCONNECT
event for the Channel.
If the disconnect is due to a network failure and the Channel has
failoverURI
values, it will attempt to reconnect automatically
by trying these URI values in order until a connection is established or the
available values are exhausted.
Parametreler
rejected:Boolean (default = false ) — True if the disconnect should skip any
failover processing that would otherwise be attempted; false
if failover processing should be allowed to run.
|
flexClientWaitHandler | () | yöntem |
protected function flexClientWaitHandler(event:PropertyChangeEvent):void
Handles a change to the guard condition for managing initial Channel connect for the application. When this is invoked it means that this Channel is waiting to attempt to connect.
Parametreler
event:PropertyChangeEvent — The PropertyChangeEvent dispatched by the FlexClient singleton.
|
getMessageResponder | () | yöntem |
protected function getMessageResponder(agent:MessageAgent, message:IMessage):MessageResponder
Returns the appropriate MessageResponder for the Channel's
send()
method.
Must be overridden.
Parametreler
agent:MessageAgent — The MessageAgent sending the message.
| |
message:IMessage — The Message to send.
|
MessageResponder — The MessageResponder to handle the result or fault.
|
Atar
IllegalOperationError — If the Channel subclass does not override
this method.
|
internalConnect | () | yöntem |
protected function internalConnect():void
Connects the Channel to its endpoint. Must be overridden.
internalDisconnect | () | yöntem |
protected function internalDisconnect(rejected:Boolean = false):void
Disconnects the Channel from its endpoint. Must be overridden.
Parametreler
rejected:Boolean (default = false ) — True if the disconnect was due to a connection rejection or timeout
and reconnection should not be attempted automatically; otherwise false.
|
internalSend | () | yöntem |
protected function internalSend(messageResponder:MessageResponder):void
Sends the Message out over the Channel and routes the response to the responder. Must be overridden.
Parametreler
messageResponder:MessageResponder — The MessageResponder to handle the response.
|
logout | () | yöntem |
public function logout(agent:MessageAgent):void
Sends a CommandMessage to the server to logout if the Channel is connected. Current credentials are cleared.
Parametreler
agent:MessageAgent — The MessageAgent to logout.
|
send | () | yöntem |
public function send(agent:MessageAgent, message:IMessage):void
Sends the specified message to its target destination.
Subclasses must override the internalSend()
method to
perform the actual send.
Parametreler
agent:MessageAgent — The MessageAgent that is sending the message.
| |
message:IMessage — The Message to send.
|
Atar
InvalidDestinationError — If neither the MessageAgent nor the
message specify a destination.
|
setCredentials | () | yöntem |
public function setCredentials(credentials:String, agent:MessageAgent = null, charset:String = null):void
Sets the credentials to the specified value. If the credentials are non-null and the Channel is connected, this method also sends a CommandMessage to the server to login using the credentials.
Parametreler
credentials:String — The credentials string.
| |
agent:MessageAgent (default = null ) — The MessageAgent to login, that will handle the login result.
| |
charset:String (default = null ) — The character set encoding used while encoding the
credentials. The default is null, which implies the legacy charset of
ISO-Latin-1.
|
Atar
IllegalOperationError — in two situations; if credentials
have already been set and an authentication is in progress with the remote
detination, or if authenticated and the credentials specified don't match
the currently authenticated credentials.
|
channelConnect | Olay |
mx.messaging.events.ChannelEvent
özellik ChannelEvent.type =
mx.messaging.events.ChannelEvent.CONNECT
Dispatched after the channel has connected to its endpoint.
Channel and its subclasses issue a Channel.Connect.Failed code whenever there is an issue in a channel's connect attempts to a remote destination. An AMFChannel object issues Channel.Call.Failed code when the channel is already connected but it gets a Call.Failed code from its underlying NetConnection.
The CONNECT event type; indicates that the Channel connected to its endpoint.The value of this constant is "channelConnect"
.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
cancelable | false |
channel | The channel that generated this event. |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
reconnecting | Indicates whether the channel that generated this event is reconnecting. |
rejected | Indicates whether the channel that generated this event was rejected. This would be true in the event that the channel has been disconnected due to inactivity and should not attempt to failover or connect on an alternate channel. |
channelDisconnect | Olay |
mx.messaging.events.ChannelEvent
özellik ChannelEvent.type =
mx.messaging.events.ChannelEvent.DISCONNECT
Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Dispatched after the channel has disconnected from its endpoint.
The DISCONNECT event type; indicates that the Channel disconnected from its endpoint.The value of this constant is "channelDisconnect"
.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
cancelable | false |
channel | The channel that generated this event. |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
reconnecting | Indicates whether the channel that generated this event is reconnecting. |
rejected | Indicates whether the channel that generated this event was rejected. This would be true in the event that the channel has been disconnected due to inactivity and should not attempt to failover or connect on an alternate channel. |
channelFault | Olay |
mx.messaging.events.ChannelFaultEvent
özellik ChannelFaultEvent.type =
mx.messaging.events.ChannelFaultEvent.FAULT
Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Dispatched after the channel has faulted.
The FAULT event type; indicates that the Channel faulted.The value of this constant is "channelFault"
.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
cancelable | false |
channel | The Channel that generated this event. |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
faultCode | Provides destination-specific details of the failure. |
faultDetail | Provides access to the destination-specific reason for the failure. |
faultString | Provides access to the underlying reason for the failure if the channel did not raise the failure itself. |
reconnecting | Indicates whether the channel that generated this event is reconnecting. |
rootCause | Provides access to the underlying reason for the failure if the channel did not raise the failure itself. |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
message | Olay |
mx.messaging.events.MessageEvent
özellik MessageEvent.type =
mx.messaging.events.MessageEvent.MESSAGE
Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Dispatched when a channel receives a message from its endpoint.
The MESSAGE event type; dispatched upon receipt of a message.The value of this constant is "message"
.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
cancelable | false |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
message | The message associated with this event. |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
propertyChange | Olay |
mx.events.PropertyChangeEvent
özellik PropertyChangeEvent.type =
mx.events.PropertyChangeEvent.PROPERTY_CHANGE
Dil Sürümü: | ActionScript 3.0 |
Ürün Sürümleri: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.1 |
Dispatched when a property of the channel changes.
ThePropertyChangeEvent.PROPERTY_CHANGE
constant defines the value of the
type
property of the event object for a PropertyChange
event.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | Determined by the constructor; defaults to false. |
cancelable | Determined by the constructor; defaults to false. |
kind | The kind of change; PropertyChangeEventKind.UPDATE or PropertyChangeEventKind.DELETE. |
oldValue | The original property value. |
newValue | The new property value, if any. |
property | The property that changed. |
source | The object that contains the property that changed. |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
CONNECT_TIMEOUT_SECONDS | Sabit |
protected static const CONNECT_TIMEOUT_SECONDS:String = "connect-timeout-seconds"
ENABLE_SMALL_MESSAGES | Sabit |
protected static const ENABLE_SMALL_MESSAGES:String = "enable-small-messages"
FALSE | Sabit |
protected static const FALSE:String = "false"
RECORD_MESSAGE_SIZES | Sabit |
protected static const RECORD_MESSAGE_SIZES:String = "record-message-sizes"
RECORD_MESSAGE_TIMES | Sabit |
protected static const RECORD_MESSAGE_TIMES:String = "record-message-times"
REQUEST_TIMEOUT_SECONDS | Sabit |
protected static const REQUEST_TIMEOUT_SECONDS:String = "request-timeout-seconds"
SERIALIZATION | Sabit |
protected static const SERIALIZATION:String = "serialization"
TRUE | Sabit |
protected static const TRUE:String = "true"
Tue Jun 12 2018, 01:09 PM Z