예제 #1
0
        static void Main(string[] args)
        {
            Task.Run(async() =>
            {
                var ws = new WebSocketConnection(null);

                ws.OnMessage += msgEvent =>
                {
                    switch (msgEvent.MessageType)
                    {
                    case MessageEventType.Text:
                        Console.WriteLine(msgEvent.Message);
                        break;

                    case MessageEventType.Binary:
                        Console.WriteLine(BitConverter.ToString(msgEvent.Message));
                        break;
                    }
                };

                await ws.Connect();
                await ws.Write("Test");
                await ws.Write(new byte[] {
                    0x01, 0x02, 0x03, 0x04, 0x05
                });
                await Task.Delay(2000);
                await ws.Disconnect();
            });

            Console.ReadLine();
        }
예제 #2
0
        public void Start()
        {
            dataStream = new DataStream();
            var url = string.Format("ws://{0}/optitrack", Address);

            client = new WebSocketConnection(url, onMessage);
            client.Connect();
        }
예제 #3
0
        public static void StartListenNewBlocks(Action <dynamic> block_result)
        {
            webSocket = new WebSocketConnection();

            webSocket.onOpen = () => {
                webSocket.SendMessage("{\"id\": 1, \"method\": \"eth_subscribe\", \"params\": [\"newHeads\"], \"jsonrpc\":\"2.0\"}");
            };

            webSocket.onMessage = (message) => {
                dynamic response = null;
                try{
                    response = JObject.Parse(message);
                }catch (Exception ex) {
                    Logger.LogStatus(ConsoleColor.Red, "ERROR: " + ex);
                    Environment.Exit(1);
                    return;
                }
                if (response != null && response.@params != null && [email protected] != null)
                {
                    Task.Run(() => {
                        block_result([email protected]);
                    });
                }
            };

            webSocket.onError = (error) => {
                Logger.LogStatus(ConsoleColor.Red, AppConfig.WebsocketNodeUrl + " " + error.Message);
                Environment.Exit(1);
            };

            webSocket.onClose = () => {
                Logger.LogStatus(ConsoleColor.Red, "Connection with " + AppConfig.WebsocketNodeUrl + " has been closed");
                Environment.Exit(1);
            };

            webSocket.Connect(AppConfig.WebsocketNodeUrl);
        }