private void sendKeepAlive(object state)
 {
     Debug.WriteLine("keepAlive");
     sendMessage(WebSocketMessage.CreateBuilder()
                 .SetType(WebSocketMessage.Types.Type.REQUEST)
                 .SetRequest(WebSocketRequestMessage.CreateBuilder()
                             .SetId(KeyHelper.getTime())
                             .SetPath("/v1/keepalive")
                             .SetVerb("GET")
                             .Build()).Build());
 }
        public async void sendResponse(WebSocketResponseMessage response)
        {
            if (socket == null)
            {
                throw new Exception("Connection closed!");
            }

            WebSocketMessage message = WebSocketMessage.CreateBuilder()
                                       .SetType(WebSocketMessage.Types.Type.RESPONSE)
                                       .SetResponse(response)
                                       .Build();

            messageWriter.WriteBytes(message.ToByteArray());
            await messageWriter.StoreAsync();
        }
Exemplo n.º 3
0
        /*internal async Task sendMessage(WebSocketMessage message)
         * {
         *  if (socket == null)
         *  {
         *      throw new Exception("Connection closed!");
         *  }
         *
         *  messageWriter.WriteBytes(message.ToByteArray());
         *  await messageWriter.StoreAsync();
         * }
         *
         * internal async Task sendResponse(WebSocketResponseMessage response)
         * {
         *  if (socket == null)
         *  {
         *      throw new Exception("Connection closed!");
         *  }
         *
         *  WebSocketMessage message = WebSocketMessage.CreateBuilder()
         *                                     .SetType(WebSocketMessage.Types.Type.RESPONSE)
         *                                     .SetResponse(response)
         *                                     .Build();
         *
         *  messageWriter.WriteBytes(message.ToByteArray());
         *  await messageWriter.StoreAsync();
         * }*/

        private void sendKeepAlive(object state)
        {
            if (socket != null)
            {
                Debug.WriteLine("keepAlive");
                byte[] message = WebSocketMessage.CreateBuilder()
                                 .SetType(WebSocketMessage.Types.Type.REQUEST)
                                 .SetRequest(WebSocketRequestMessage.CreateBuilder()
                                             .SetId(KeyHelper.getTime())
                                             .SetPath("/v1/keepalive")
                                             .SetVerb("GET")
                                             .Build()).Build()
                                 .ToByteArray();
                messageWriter.WriteBytes(message);
                messageWriter.StoreAsync();
            }
        }
Exemplo n.º 4
0
        /*public  WebSocketRequestMessage readRequest(ulong timeoutMillis)
         * {
         *  if (client == null)
         *  {
         *      throw new Exception("Connection closed!");
         *  }
         *
         *  ulong startTime = KeyHelper.getTime();
         *
         *  while (client != null && incomingRequests.Count == 0 && elapsedTime(startTime) < timeoutMillis)
         *  {
         *      //Util.wait(this, Math.Max(1, timeoutMillis - elapsedTime(startTime)));
         *  }
         *
         *  if (incomingRequests.Count == 0 && client == null) throw new Exception("Connection closed!");
         *  else if (incomingRequests.Count == 0) throw new TimeoutException("Timeout exceeded");
         *  else
         *  {
         *      WebSocketRequestMessage message = incomingRequests.First();
         *      incomingRequests.RemoveFirst();
         *      return message;
         *  }
         * }*/

        internal async Task <Tuple <int, string> > sendRequest(WebSocketRequestMessage request)
        {
            if (socket == null || !connected)
            {
                throw new IOException("No connection!");
            }

            WebSocketMessage message = WebSocketMessage.CreateBuilder()
                                       .SetType(WebSocketMessage.Types.Type.REQUEST)
                                       .SetRequest(request)
                                       .Build();

            Tuple <int, string> empty = new Tuple <int, string>(0, string.Empty);

            outgoingRequests.Add((long)request.Id, empty);

            messageWriter.WriteBytes(message.ToByteArray());
            await messageWriter.StoreAsync();

            return(empty);
        }