示例#1
0
        /// <summary>
        /// Sends websocket pong message
        /// </summary>
        public sealed override void Pong(object pingMessage = null)
        {
            if (pingMessage == null)
            {
                Send(Horse.Protocols.WebSocket.PredefinedMessages.PONG);
                return;
            }

            WebSocketMessage ping = pingMessage as WebSocketMessage;

            if (ping == null)
            {
                Send(Horse.Protocols.WebSocket.PredefinedMessages.PONG);
                return;
            }

            WebSocketMessage pong = new WebSocketMessage();

            pong.OpCode  = SocketOpCode.Pong;
            pong.Masking = ping.Masking;
            if (ping.Length > 0)
            {
                pong.Content = new MemoryStream(ping.Content.ToArray());
            }

            byte[] data = _writer.Create(pong).Result;
            Send(data);
        }
示例#2
0
        /// <summary>
        /// Creates web socket message from model and sends to specified client
        /// </summary>
        public static void Send <TModel>(this SocketBase socket, TModel model, IModelWriter writer) where TModel : ISerializableModel
        {
            WebSocketMessage message = new WebSocketMessage
            {
                OpCode  = SocketOpCode.UTF8,
                Content = new MemoryStream(Encoding.UTF8.GetBytes(writer.Serialize(model)))
            };

            socket.Send(_writer.Create(message).Result);
        }
示例#3
0
 /// <summary>
 /// Sends string websocket message
 /// </summary>
 private static bool SendInternal(IConnector <TwinoWebSocket, WebSocketMessage> connector, string message)
 {
     byte[] data = _writer.Create(WebSocketMessage.FromString(message)).Result;
     return(connector.Send(data));
 }
示例#4
0
 public byte[] Prepare(ISerializableModel model)
 {
     return(_writer.Create(Serialize(model)).Result);
 }
示例#5
0
 /// <summary>
 /// Sends a string websocket message
 /// </summary>
 public bool Send(string message)
 {
     byte[] data = _writer.Create(message).Result;
     return(Send(data));
 }