private void initConnection(JavaWebSocket ws) { sockets.Add(ws); initMessageHandler(ws); initErrorHandler(ws); write(ws, queryChainLengthMsg()); }
public void initP2PServer() { JavaWebSocket server = JavaWebSocket.Server(p2p_port); server.onConnection = ws => initConnection(ws); log($"listening websocket p2p port on: {p2p_port}"); }
public void ConstructorTestMethod() { JavaWebSocket _new = new JavaWebSocket(new Uri("http://localhost:3001")); string _description = _new.ToString(); Assert.IsFalse(String.IsNullOrEmpty(_description)); Assert.AreEqual <string>("http://localhost:3001/", _description); }
public void connectToPeers(Uri[] newPeers) { foreach (Uri peer in newPeers) { JavaWebSocket ws = new JavaWebSocket(peer); ws.onOpen = () => initConnection(ws); ws.onError = () => log("connection failed"); } }
private void initErrorHandler(JavaWebSocket ws) { Action <JavaWebSocket> closeConnection = (_ws) => { log($"connection failed to peer: {_ws.url}"); sockets.splice(sockets.IndexOf(ws), 1); }; ws.onClose = () => closeConnection(ws); ws.onError = () => closeConnection(ws); }
private void initMessageHandler(JavaWebSocket ws) { ws.onMessage = (data) => { Message message = Message.parse(data); log($"Received message { message.stringify()}"); switch (message.type) { case MessageType.QUERY_LATEST: write(ws, responseLatestMsg()); break; case MessageType.QUERY_ALL: write(ws, responseChainMsg()); break; case MessageType.RESPONSE_BLOCKCHAIN: handleBlockchainResponse(message); break; } ; }; }
private void write(JavaWebSocket ws, Message message) { ws.send(message.stringify()); }