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(); }
/*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(); } }
/*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); }