コード例 #1
0
        private void Socket_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            try
            {
                var bl3pBook     = JsonConvert.DeserializeObject <Bl3pOrderBook>(e.Message);
                var currencyPair = _bl3pCurrencyMapper.GetCurrency(bl3pBook.MarketPlace);

                var book = new OrderBook();
                book.Asks         = new List <OrderBookItem>();
                book.Bids         = new List <OrderBookItem>();
                book.CurrencyPair = currencyPair;

                foreach (var item in bl3pBook.Bids)
                {
                    book.Bids.Add(new OrderBookItem()
                    {
                        Price = item.Price / 100000m, Volume = item.Amount / 100000000m
                    });
                }
                foreach (var item in bl3pBook.Asks)
                {
                    book.Asks.Add(new OrderBookItem()
                    {
                        Price = item.Price / 100000m, Volume = item.Amount / 100000000m
                    });                                                                                                     //Amount / 1e8
                }
                _orderBookDict[currencyPair] = book;
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex, "Bl3p data client get a wrong message");
            }
        }
コード例 #2
0
        private void WhenMessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            try
            {
                if (Info.Status == "closed")
                {
                    return;
                }
                if (e.Message.Length <= 0)
                {
                    return;
                }
                else
                {
                    IsReceiving         = true;
                    Info.LastActiveTime = DateTime.Now;
                    Info.LastDataTime   = Info.LastActiveTime.ToString("yyyy-MM-dd HH:mm:ss");
                }
            }
            catch
            {
                return;
            }

            Info.MediaInfo = e.Message.Trim();
            var parts = Info.MediaInfo.Split('|');

            if (parts.Length >= 2)
            {
                m_RawVideoType = "h264";
                m_RawAudioType = parts[1].Trim();
                if (parts[1].IndexOf('x') > 0 && parts[1].Length > 4)
                {
                    m_RawAudioType = parts[0].Trim();
                }
            }
            else if (parts.Length >= 1)
            {
                if (Info.MediaInfo.IndexOf('x') > 0 && Info.MediaInfo.Length > 4)
                {
                    m_RawVideoType = "h264";
                    m_RawAudioType = "";
                }
                else
                {
                    m_RawVideoType = "";
                    m_RawAudioType = parts[0].Trim();
                }
            }

            if (m_RawAudioType.Length > 0 && m_RawAudioType.Contains('@'))
            {
                m_RawAudioType = m_RawAudioType.Split('@')[0].Trim();
            }

            if (m_RawAudioType.Length > 0 && m_RawAudioType.Contains('('))
            {
                m_RawAudioType = m_RawAudioType.Split('(')[0].Trim();
            }
        }
コード例 #3
0
        private async void OnMessageReceived(object sender, MessageReceivedEventArgs args)
        {
            if (OnData == null) return;

            var exceptionOccured = false;
            try
            {
                var text = args.Message;
                OnData(sender, new DataReceivedEventArgs { TextData = text });
            }
            catch (Exception)
            {
                exceptionOccured = true;
            }
            // cannot await in catch
            if (exceptionOccured)
            {
                _connectionState = ConnectionState.Failed;
                try
                {
                    await Reconnect();
                }
                catch (Exception e)
                {
                    Error(e);
                }
            }
        }
コード例 #4
0
 /// <summary>
 /// Handles the MessageReceived event of the websocket control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="MessageReceivedEventArgs"/> instance containing the event data.</param>
 void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     if (OnReceiveDelegate != null)
     {
         OnReceiveDelegate(e.Message);
     }
 }
コード例 #5
0
        private void websocketmessage(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            string s = e.Message;

            Console.WriteLine("мы получили сообщение");
            Console.WriteLine(s);
        }
コード例 #6
0
 void _socket_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     if (! _handle_Ping(e.Message))
     {
         this._client.AddItem(e.Message);
     }
 }
        void HandleMessage(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            List <object> parsedMessage = Json.Deserialize(e.Message) as List <object>;
            string        messageType   = (string)parsedMessage[0];

            try
            {
                if (messageType == "call-error")
                {
                    Console.WriteLine("Received error message: {0}", e.Message);
                }
                else if (messageType == "call")
                {
                    HandleCallMessage(e.Message, parsedMessage);
                }
                else if (messageType == "call-reply")
                {
                    HandleCallReplyMessage(e.Message, parsedMessage);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed to parse incoming message: " + e.Message, ex);
            }
        }
コード例 #8
0
 /// <summary>
 /// Handles the MessageReceived event of the websocket control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="MessageReceivedEventArgs"/> instance containing the event data.</param>
 void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     if (OnReceiveDelegate != null)
     {
         OnReceiveDelegate(Encoding.UTF8.GetBytes(e.Message));
     }
 }
コード例 #9
0
        private void websocket_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            WebsocketResponse response = JsonConvert.DeserializeObject <WebsocketResponse>(e.Message);

            switch (response.Command)
            {
            case "get_request":
                if (response.Values == null)
                {
                    return;
                }

                if (LocalValues != ServerValues && !initialStart)
                {
                    ServerValues  = response.Values;
                    valuesPending = true;
                    this.Invoke((MethodInvoker)(() => this.Refresh()));
                }
                else
                {
                    ServerValues = response.Values;
                    initialStart = false;
                    this.Invoke((MethodInvoker)(() => this.UpdateLocalWithServer()));
                    this.Invoke((MethodInvoker)(() => this.Refresh()));
                }
                break;
            }
        }
コード例 #10
0
        protected override void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            base.websocket_MessageReceived(sender, e);
            try
            {
                BinResponce res = JsonHelper.JsonToObject(typeof(BinResponce), null, e.Message) as BinResponce;

                switch (res.code)
                {
                    case 100:
                        {
                            mainPage.Dispatcher.BeginInvoke(new Action(() => {
                                mainPage.GotoOnlinePage();
                            }));
                            break;
                        }
                    default:
                        break;
                }
            }
            catch (Exception ex)
            {
                ;
            }
        }
コード例 #11
0
 private void App_state_websocket_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
 {
     lock (waitlock)
     {
         var status = JObject.Parse(e.Message);
         CheckWaitStatus(status);
     }
 }
コード例 #12
0
ファイル: Program.cs プロジェクト: Indifer/Test
 static void ws_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     System.Threading.Interlocked.Increment(ref backCount);
     if (backCount == count)
     {
         Console.WriteLine((DateTime.Now - dt));
     }
 }
コード例 #13
0
        /// <summary>
        /// Websocket Message Received event handler. Either tries to match incoming messages as
        /// replies to messages we've sent, or fires an event related to an incoming event, like
        /// device additions/removals, log messages, etc.
        /// </summary>
        /// <param name="aSender">Object sending the open event, unused.</param>
        /// <param name="aArgs">Event parameters, including the data received.</param>
        private void MessageReceivedHandler(object aSender, WebSocket4Net.MessageReceivedEventArgs aArgs)
        {
            var msgs = Deserialize(aArgs.Message);

            foreach (var msg in msgs)
            {
                if (msg.Id > 0 && _waitingMsgs.TryRemove(msg.Id, out TaskCompletionSource <ButtplugMessage> queued))
                {
                    queued.TrySetResult(msg);
                    continue;
                }

                switch (msg)
                {
                case Log l:
                    _owningDispatcher.Send(_ =>
                    {
                        Log?.Invoke(this, new LogEventArgs(l));
                    }, null);
                    break;

                case DeviceAdded d:
                    var dev = new ButtplugClientDevice(d);
                    _devices.AddOrUpdate(d.DeviceIndex, dev, (idx, old) => dev);
                    _owningDispatcher.Send(_ =>
                    {
                        DeviceAdded?.Invoke(this, new DeviceEventArgs(dev, DeviceEventArgs.DeviceAction.ADDED));
                    }, null);
                    break;

                case DeviceRemoved d:
                    if (_devices.TryRemove(d.DeviceIndex, out ButtplugClientDevice oldDev))
                    {
                        _owningDispatcher.Send(_ =>
                        {
                            DeviceRemoved?.Invoke(this, new DeviceEventArgs(oldDev, DeviceEventArgs.DeviceAction.REMOVED));
                        }, null);
                    }

                    break;

                case ScanningFinished sf:
                    _owningDispatcher.Send(_ =>
                    {
                        ScanningFinished?.Invoke(this, new ScanningFinishedEventArgs(sf));
                    }, null);
                    break;

                case Error e:
                    _owningDispatcher.Send(_ =>
                    {
                        ErrorReceived?.Invoke(this, new ErrorEventArgs(e));
                    }, null);
                    break;
                }
            }
        }
コード例 #14
0
ファイル: BridgeClient.cs プロジェクト: Justkek/connecttoweb
 private void conn_message(object sender, WebSocket4Net.MessageReceivedEventArgs msg)
 {
     if (msg.Message != "empty")
     {
         typedata income = new typedata();
         income = (typedata)primeJSON.DeserializeObject(msg.Message, income.GetType());
         doMessage(income);
     }
 }
コード例 #15
0
ファイル: StreamData.cs プロジェクト: nkman/Jasper
        private void websocket_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            System.Diagnostics.Debug.WriteLine("Message received");
            string s = e.Message;

            //new Note().apply_patch(s);
            System.Diagnostics.Debug.WriteLine(e.Message);
            apply_patch(s);
        }
コード例 #16
0
ファイル: Program.cs プロジェクト: fleetfreedom/WhiteWhale
 /// <summary>
 /// An auto-login handler which is only raised once.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 static void doLogin(object sender, MessageReceivedEventArgs e)
 {
     socket.MessageReceived -= doLogin;
     send("login", new {
         username = email,
         password = pass,
         userAgent = ua
     });
 }
コード例 #17
0
        internal static void OnWebsocketMessage(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            SystemCommand C = new SystemCommand(e.Message.ToString());

            if (C.OpCode == "PIN")
            {
                Core.websocket.Send("PIN"); return;
            }
            IncomingMessageQueue.Enqueue(C);
        }
コード例 #18
0
        private void jsokmessage(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            string s = e.Message;

            Console.WriteLine("мы получили сообщение");
            typedata q = new typedata();

            q = (typedata)DeserializeObject(s, q.GetType());
            q.display();
        }
コード例 #19
0
        void m_WebSocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            AppendText("Received:" + e.Message);

            if (e.Message.Equals(m_CurrentSendMessage))
                AppendText("Receive correct");
            else
                AppendText("Receive error");

            m_WebSocket.Close();
        }
コード例 #20
0
 void webSocket_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
 {
     if (ChromeEvent != null)
     {
         ChromeNetworkEvent networkEvent = JsonConvert.DeserializeObject <ChromeNetworkEvent>(e.Message);
         if (networkEvent.method == "Network.requestWillBeSent")
         {
             ChromeEvent(networkEvent);
         }
     }
 }
コード例 #21
0
ファイル: ChatHandler.cs プロジェクト: Cir0X/ludo
 public void receiveChat(object sender, MessageReceivedEventArgs args)
 {
     ludo_client.dto.Message newIncomingMessage = JsonConvert.DeserializeObject<ludo_client.dto.Message>(args.Message);
     if (newIncomingMessage.TargetRoomID != Main.ludo.Users[ClientBase.myUserListIndex].CurrentRoomID)
     {
         updateMessageList(this.messageList, newIncomingMessage); // for global server chat
     }
     else
     {
         updateMessageList(this.roomMessageList, newIncomingMessage); // for room chat
     }
 }
コード例 #22
0
        static void btc_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            int eioMessageType = -1;
            if (int.TryParse(e.Message.Substring(0, 1), out eioMessageType))
            {
                switch ((engineioMessageType)eioMessageType)
                {
                    case engineioMessageType.PING:
                        //replace incoming PING with PONG in incoming message and resend it.
                        btc.Send(string.Format("{0}{1}", (int)engineioMessageType.PONG, e.Message.Substring(1, e.Message.Length - 1)));
                        break;
                    case engineioMessageType.PONG:
                        pong = true;
                        break;

                    case engineioMessageType.MESSAGE:
                        int sioMessageType = -1;
                        if (int.TryParse(e.Message.Substring(1, 1), out sioMessageType))
                        {
                            switch ((socketioMessageType)sioMessageType)
                            {
                                case socketioMessageType.CONNECT:
                                    //Send "42["subscribe",["marketdata_cnybtc","marketdata_cnyltc","marketdata_btcltc"]]"
                                    btc.Send(string.Format("{0}{1}{2}", (int)engineioMessageType.MESSAGE,
                                                                       (int)socketioMessageType.EVENT,
                                                                       "[\"subscribe\",[\"marketdata_cnybtc\",\"marketdata_cnyltc\",\"marketdata_btcltc\"]]"));
                                    break;
                                case socketioMessageType.EVENT:
                                    if (e.Message.Substring(4, 5) == "trade")//listen on "trade"
                                        Console.WriteLine(e.Message.Substring(e.Message.IndexOf('{'), e.Message.LastIndexOf('}') - e.Message.IndexOf('{') + 1));
                                    break;
                                default:
                                    Console.WriteLine("error switch socket.io messagetype:" + e.Message);
                                    break;
                            }
                        }
                        else
                        {
                            Console.WriteLine("error parse socket.io messagetype!");
                        }
                        break;

                    default:
                        Console.WriteLine("error switch engine.io messagetype");
                        break;
                }
            }
            else
            {
                Console.WriteLine("error parsing engine.io messagetype!");
            }
        }
コード例 #23
0
ファイル: AuthenticationHandler.cs プロジェクト: Cir0X/ludo
 private void receiveThisUserObject(object sender, MessageReceivedEventArgs args)
 {
     var jsonString = JsonConvert.DeserializeObject<User>(args.Message);
     int userListIndex = jsonString.UserListIndex;
     this.user = JsonConvert.DeserializeObject<User>(args.Message); // receiving my user object
     Main.ludo.Users[0] = this.user;
     if (isUserNameAvailable())
     {
         ClientBase.myUserListIndex = userListIndex;
     }
     else
     {
         MessageBox.Show("Username is already used");
     }
 }
コード例 #24
0
ファイル: StompClient.cs プロジェクト: YAMAHAH/FoxLib
        void socket_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            StompFrame frame = this.TransformResultFrame(e.Message);

            switch (frame.Code)
            {
            case StatusCodeEnum.CONNECTED:
                connected = true;
                this.callbacks[CID](frame);
                break;

            case StatusCodeEnum.MESSAGE:
                this.callbacks[frame.GetHeader(SubscriptionHeader)](frame);
                break;
            }
        }
コード例 #25
0
ファイル: Form1.cs プロジェクト: Railcrafti/ModernMinasServer
        public void receive(object sender, MessageReceivedEventArgs e)
        {
            Console.WriteLine(e.Message);
            JObject json = JObject.Parse(e.Message);
            if (json.GetValue("result").ToString() != "success") return;
            string src = json.GetValue("source").ToString();
            switch (src)
            {
                case "getPlayerLimit":
                    MessageBox.Show("The actual Player limit is: " + json.GetValue("success").ToString());
                    break;
                case "getPlayerNames":
                    clear x = new clear(clearbox);
                    this.Invoke(x);
                    JToken token = json.GetValue("success");
                    foreach (JToken f in token)
                    {
                        add c = new add(addbox);
                        this.Invoke(c, f.ToString());

                    }

                    break;
                case "getPlayer":
                    JToken pos = json.GetValue("success").SelectToken("location");
                    string posi =  "x: " + pos.SelectToken("x").ToString() + " y: " + pos.SelectToken("y").ToString() + " z: " + pos.SelectToken("z").ToString();
                    string op = Convert.ToString(json.GetValue("success").SelectToken("op"));
                    string world = json.GetValue("success").SelectToken("worldInfo").SelectToken("name").ToString();
                    string gamemode = json.GetValue("success").SelectToken("gameMode").ToString();
                    infoHandler handler = new infoHandler(addinfo);
                    this.Invoke(handler, posi, world, op, gamemode);
                    break;
                case "kickPlayer":
                    if (!mk)
                    MessageBox.Show("Player gekickt");
                    break;
                case "opPlayer":
                    MessageBox.Show("Player is OP.");
                    break;
                case "deopPlayer":
                    MessageBox.Show("Player is no longer OP");
                    break;
                default:
                    Console.WriteLine(e.Message);
                    break;
            }
        }
コード例 #26
0
        private void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            //Trace.WriteLine(e.Message);
            if (e.Message.Equals("1::")) return;
            if (e.Message.Equals("2::"))
            {
                _websocket.Send("2::");
                return;
            }
            if (e.Message.StartsWith("5:::"))
            {
                var jsonObj = JObject.Parse(e.Message.Substring(4));
                var args = JObject.Parse(jsonObj.GetValue("args").First.ToString());
                var method = args.GetValue("method");
                var paramsObject = args.GetValue("params");

                switch (method.ToString())
                {
                    case "loginMsg":
                        GuiMessage(hb.Username, "SYSTEM: Successfully connected to server.", "000000");
                        SendUserListMessage();
                        break;

                    case "chatMsg":
                        GuiMessage(paramsObject["name"].ToString(), paramsObject["text"].ToString(),
                            paramsObject["nameColor"].ToString());
                        break;
                    case "userList":
                        UserListThread = new Thread(() => { hb.LoadUserData(paramsObject.ToString()); });
                        UserListThread.Start();
                        break;
                    case "banList":
                        BanListThread = new Thread(() => { hb.LoadBanList(paramsObject.ToString()); });
                        BanListThread.Start();
                        break;
                    default:
                        return;
                }
                //Debug.WriteLine(jsonObj);
                //Debug.WriteLine("jsonObj: {0}", jsonObj);
                //Debug.WriteLine("test: {0}", args);
                //Debug.WriteLine("method: {0}", method);
                //Debug.WriteLine("Params: {0}", paramsObject);
            }
        }
コード例 #27
0
        private void WhenMessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            IsReceiving = true;

            if (e.Message.Trim().Length <= 0)
            {
                return;
            }

            Info.MediaInfo = e.Message.Trim();
            var parts = Info.MediaInfo.Split('|');

            if (parts.Length >= 2)
            {
                m_RawVideoType = "h264";
                m_RawAudioType = parts[1].Trim();
                if (parts[1].IndexOf('x') > 0 && parts[1].Length > 4)
                {
                    m_RawAudioType = parts[0].Trim();
                }
            }
            else if (parts.Length >= 1)
            {
                if (Info.MediaInfo.IndexOf('x') > 0 && Info.MediaInfo.Length > 4)
                {
                    m_RawVideoType = "h264";
                    m_RawAudioType = "";
                }
                else
                {
                    m_RawVideoType = "";
                    m_RawAudioType = parts[0].Trim();
                }
            }

            if (m_RawAudioType.Length > 0 && m_RawAudioType.Contains('@'))
            {
                m_RawAudioType = m_RawAudioType.Split('@')[0].Trim();
            }

            if (m_RawAudioType.Length > 0 && m_RawAudioType.Contains('('))
            {
                m_RawAudioType = m_RawAudioType.Split('(')[0].Trim();
            }
        }
コード例 #28
0
ファイル: QuotesFeed.cs プロジェクト: pb8/Stockfighter
        private void MessageReceived(object s, MessageReceivedEventArgs e)
        {
            QuoteMessage message = null;

            try
            {
                message = JsonConvert.DeserializeObject<QuoteMessage>(e.Message);
            }
            catch (Exception ex)
            {
                ErrorOccured(this, ex.Message);
            }

            if (message != null && message.Ok && message.Quote != null && QuoteReceived != null)
            {
                QuoteReceived(this, message.Quote);
            }
        }
コード例 #29
0
        private void Socket_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            //Console.WriteLine (e.Message);//TODO:
            Console.ForegroundColor = ConsoleColor.White;
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(e.Message);
            XmlElement node = (XmlElement)doc.FirstChild;

            if (messageTypes.ContainsKey(node.Name))
            {
                XMPPMessage msg = messageTypes[node.Name];
                if (msg != null)
                {
                    msg(node);
                }
            }
        }
コード例 #30
0
ファイル: TelemetryService.cs プロジェクト: Clancey/Grapher
        void webSocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            var obj = (JsonObject)SimpleJson.SimpleJson.DeserializeObject(e.Message);

            //var obj = new JsonObject();
            //obj.
            if (obj == null) {
                return;
            }

            var tele = new Telemetry();
            tele.Name = (string)obj ["Name"];
            tele.SourceId = Int32.Parse(obj["SourceId"].ToString());
            tele.Value = float.Parse(obj["Value"].ToString());
            tele.Timestamp = DateTime.Parse((string)obj["TimeStamp"]);

            Database.Main.InsertTelemetryAsync(tele);

            Console.WriteLine(e.Message.ToString());
        }
コード例 #31
0
ファイル: APIWorker.cs プロジェクト: Amolindk/RatTracker
        private void websocketClient_MessageReceieved(object sender, MessageReceivedEventArgs e)
        {
            /* We can let this go away fairly soon, since there's not much we can do in the API Worker anyways
             * at this point. Maybe attach a logger here?
             */
            dynamic data = JsonConvert.DeserializeObject(e.Message);
            switch ((string)data.type)
            {
                case "welcome":
                    Console.WriteLine("API MOTD: " + data.data);
                    break;
                case "assignment":
                    Console.WriteLine("Got a new assignment datafield: " + data.data);
                    break;
                default:
                    Console.WriteLine("Unknown API type field: " + data.type + ": " + data.data);
                    break;
            }

            //appendStatus("Direct parse. Type:" + data.type + " Data:" + data.data);
        }
コード例 #32
0
ファイル: Program.cs プロジェクト: somecoolname/MarvinBot
        private static void WebSocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            var baseEvent = JsonConvert.DeserializeObject<BaseEvent>(e.Message);
            WriteLine($"Message received of type {baseEvent.Type}");

            if (baseEvent.Type == "message")
            {
                var messageEvent = JsonConvert.DeserializeObject<MessageEvent>(e.Message);

                WriteLine(messageEvent.Text);

                var messageCommand = new MessageCommand
                {
                    channel = messageEvent.Channel,
                    text = $"I'm in parrot mode: {messageEvent.Text}"
                };

                webSocket.Send(JsonConvert.SerializeObject(messageCommand));
            }

        }
コード例 #33
0
ファイル: GameHandler.cs プロジェクト: Cir0X/ludo
        private void handleGame(object sender, MessageReceivedEventArgs args)
        {
            oldRoom = Main.ludo.Rooms[ClientBase.roomListSelectionID];
            //Room room = JsonConvert.DeserializeObject<Room>(args.Message);
            Main.ludo = JsonConvert.DeserializeObject<Ludo>(args.Message);
            Room room = Main.ludo.Rooms[ClientBase.roomListSelectionID];

            if (room.RoomID == ClientBase.roomListSelectionID) // affects this my room?
            {
                updatePlayerListBox();
                updateRollTheDiceButton(room);
                if (room.RoomAction.Equals("diceRolled"))
                {
                    printDiceValue(room.Game.DiceValue);
                }
                if (room.Game.MoveCount > 0)
                {
                    updateTheMap(room);
                }
            }
        }
コード例 #34
0
        void socket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            //Console.WriteLine(e.Message);

            JObject jObj = JObject.Parse(e.Message);

            if (jObj["msg"] != null)
            {
                switch (jObj["msg"].ToString())
                {
                    case "ping":
                        this.Send("{\"msg\": \"pong\"}");
                        Console.WriteLine("Ping? Pong!");
                        break;

                    default:
                        this._client.DataReceived(jObj);
                        break;
                }

            }
        }
コード例 #35
0
ファイル: wsConnection.cs プロジェクト: zeitoonco/zds
        private void Connection_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            try
            {
                if (onReceive != null)
                    onReceive(e.Message);
                if (onCallbackReceive != null)
                    if (e.Message[0] == '{')
                    {
                        JObject obj = JObject.Parse(e.Message);
                        if (obj["type"].Value<string>() == "callback")
                        {
                            onCallbackReceive(obj["node"].Value<string>(), obj["id"].Value<string>(), obj["data"].Value<JObject>());
                        }
                    }

            }
            catch (Exception ex)
            {
                Debug.Print("EXCP:" + ex.ToString());
            }

        }
コード例 #36
0
 static void MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     var packet = JArray.Parse(e.Message);
     foreach (var message in packet.Cast<JObject>())
     {
         switch ((string)message["channel"])
         {
             case "/meta/handshake":
                 HandshakeResponse(message);
                 break;
             case "/meta/connect":
                 ConnectRequest();
                 break;
             default:
                 if (((string)message["channel"]).StartsWith("/cloud") || ((string)message["channel"]).StartsWith("/cloud"))
                 {
                     Connection.OnMessageReceived(message);
                 }
                 
                 break;
         }
     }
 }
コード例 #37
0
        /// <summary>
        ///  Raw websocket messages from server - convert to message types and call subscribers of events and/or callbacks
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void mws_MessageReceived(object sender, MessageReceivedEventArgs e)
        {

            try
            {
                Debug.WriteLine("[SOCKET_IO]: < " + e.Message);
                IMessage iMsg = SocketIOClient.Messages.Message.Factory(e.Message);

                if (iMsg.Event == "responseMsg")
                    Debug.WriteLine(string.Format("InvokeOnEvent: {0}", iMsg.RawMessage));

                switch (iMsg.MessageType)
                {
                    case SocketIOMessageTypes.Disconnect:
                        this.OnMessageEvent(iMsg);
                        if (string.IsNullOrWhiteSpace(iMsg.Endpoint)) // Disconnect the whole socket
                            this.Close();
                        break;
                    case SocketIOMessageTypes.Heartbeat:
                        this.OnHeartBeatTimerCallback(null);
                        break;
                    case SocketIOMessageTypes.Connect:
                    case SocketIOMessageTypes.Message:
                    case SocketIOMessageTypes.JSONMessage:
                    case SocketIOMessageTypes.Event:
                    case SocketIOMessageTypes.Error:
                        this.OnMessageEvent(iMsg);
                        break;
                    case SocketIOMessageTypes.ACK:
                        this.registrationManager.InvokeCallBack(iMsg.AckId, iMsg.Json);
                        break;
                    default:
                        Debug.WriteLine("unknown mws message Received...");
                        break;
                }
            }
            catch (Exception ex) // For debugging
            {
                this.OnErrorEvent(this, new ErrorEventArgs(((WebSocketError)ex.GetBaseException().HResult).ToString(), ex));
                //this.Close();

            }
        }
コード例 #38
0
ファイル: SlackAdapter.cs プロジェクト: GhostTW/mmbot
        private void SocketOnMessage(object sender, MessageReceivedEventArgs messageEventArgs)
        {
            var raw = JsonObject.Parse(messageEventArgs.Message);

            if (raw["type"] == "message")
            {
                if (raw.ContainsKey("subtype"))
                {
                    // Subtypes are things like channel join messages, etc.
                    return;
                }

                var channel = raw["channel"];
                var text = raw["text"];
                var user = raw["user"];

                ReceiveMessage(channel, user, text);
            }

            if (raw["type"] == "team_join")
            {
                HandleTeamJoinMessage(raw);
            }

            if (raw["type"] == "channel_created")
            {
                HandleChannelCreatedMessage(raw);
            }

            if (raw["type"] == "channel_deleted")
            {
                HandleChannelDeletedMessage(raw);
            }

            if (raw["type"] == "channel_rename")
            {
                HandleChannelRenameMessage(raw);
            }
        }
コード例 #39
0
ファイル: DDPConnector.cs プロジェクト: raedle/DDPClient.NET
        void socket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            _client.AddItem(e.Message);

            _autoResetEvent.Set();
        }
コード例 #40
0
        private void OnWebsocketMessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            if (e.Message == "\r\n" || e.Message == "\n")
            {
                Log.Trace("EOL received");
                this.StompHeartbeatReceiveTimer?.Stop();
                this.StompHeartbeatReceiveTimer?.Start();
                return;
            }

            Log.Info($"Websocket message received: {e.Message}");

            var stompFrame = IStompFrame.Deserialize(e.Message);

            switch (stompFrame)
            {
            case ConnectedFrame frame:
                if (frame.ServerExpectedHeartbeatInterval.TotalMilliseconds != 0)
                {
                    this.StompHeartbeatSendTimer          = new System.Timers.Timer(frame.ServerExpectedHeartbeatInterval.TotalMilliseconds);
                    this.StompHeartbeatSendTimer.Elapsed += this.HeartbeatSendTimerElapsed;
                    this.StompHeartbeatSendTimer.Start();
                }

                if (frame.ServerSendingHeartbeatInterval.TotalMilliseconds != 0)
                {
                    this.StompHeartbeatReceiveTimer          = new System.Timers.Timer((this.StompHeartbeatIntervalFromServerToClient + this.StompHeartbeatTimeout).TotalMilliseconds);
                    this.StompHeartbeatReceiveTimer.Elapsed += this.HeartbeatReceivedTimerElapsed;
                    this.StompHeartbeatReceiveTimer.Start();
                }

                this.InvokeConnectedEvent(new ConnectedEventArgs(frame));
                break;

            case ErrorFrame frame:
                this.InvokeErrorReceivedEvent(new ErrorReceivedEventArgs(frame));
                break;

            case ReceiptFrame frame:
                this.InvokeReceiptReceivedEvent(new ReceiptReceivedEventArgs(frame));
                break;

            case MessageFrame frame:
                var eventArguments = new EventArguments.MessageReceivedEventArgs(frame);
                if (this.subscriptionCallbacks.ContainsKey(frame.Headers.Destination))
                {
                    var parameters = new object[]
                    {
                        this,
                        eventArguments,
                    };
                    this.subscriptionCallbacks[frame.Headers.Destination].DynamicInvoke(parameters);
                }
                else
                {
                    this.InvokeMessageReceivedEvent(eventArguments);
                }

                break;

            default:
                Log.Info($"Unkown stomp frame: {stompFrame.Body}");
                break;
            }

            this.StompHeartbeatReceiveTimer?.Stop();
            this.StompHeartbeatReceiveTimer?.Start();
        }
コード例 #41
0
ファイル: SocketIO.cs プロジェクト: elexal/Xamarin.Socket.IO
		void SocketMessageReceivedFunction (object o, MessageReceivedEventArgs e)
		{
			Debug.WriteLine ("Received Message: {0}", e.Message);

			TimeoutTimer.Change (TimeoutTime, Timeout.Infinite);

			var match = Regex.Match (e.Message, socketIOEncodingPattern);

			var messageType = (MessageType)int.Parse (match.Groups [1].Value);
			var messageId = match.Groups [2].Value;
			var endpoint = match.Groups [3].Value;

			var socketMessageInfo = new MessageID (messageId, endpoint);
			var	data = match.Groups [4].Value;

			if (!string.IsNullOrEmpty (data))
				data = data.Substring (1); //ignore leading ':'

			JObject jObjData = null;

			switch (messageType) {

			case MessageType.Disconnect:
				Debug.WriteLine ("Disconnected");
				SocketDisconnected (socketMessageInfo, endpoint);
				break;

			case MessageType.Connect:
				Debug.WriteLine ("Connected");
				SocketConnected (socketMessageInfo, endpoint);
				break;

			case MessageType.Heartbeat:
				Debug.WriteLine ("Heartbeat");
				SendHeartbeat ();
				break;

			case MessageType.Message:
				Debug.WriteLine ("Message = {0}", data);
				SocketReceivedMessage (socketMessageInfo, data);
				break;

			case MessageType.Json:
				Debug.WriteLine ("Json = {0}", data);
				if (!string.IsNullOrEmpty (data))
					jObjData = JObject.Parse (data);
				SocketReceivedJson (socketMessageInfo, jObjData);
				break;

			case MessageType.Event:
				Debug.WriteLine ("Event");
				string eventName = "";
				if (!string.IsNullOrEmpty (data)) {
					jObjData = JObject.Parse (data);
					eventName = jObjData ["name"].ToString ();
				}

				if (!string.IsNullOrEmpty (eventName) && EventHandlers.ContainsKey (eventName)) {
					var handlers = EventHandlers [eventName];
					foreach (var handler in handlers) {
						if (handler != null) {
							JArray args = null;
							if (jObjData != null && jObjData["args"] != null)
								args = JArray.Parse (jObjData ["args"].ToString ());
							handler (args.First);
							Debug.WriteLine ("event: {0} with args: {1}", eventName, args);
						}
					}
				}
				break;

			case MessageType.Ack:
				Debug.WriteLine ("Ack");
				if (!string.IsNullOrEmpty (data)) {
					var ackMatch = Regex.Match (data, socketAckEncodingPattern);
					var ackMessageId = int.Parse (ackMatch.Groups [1].Value);
					var ackData = ackMatch.Groups [2].Value;
					JArray jData = null;

					if (!string.IsNullOrEmpty (ackData)) {
						ackData = ackData.Substring (1); //ignore leading '+'
						jData = JArray.Parse (ackData);
					}
					SocketReceivedAcknowledgement (ackMessageId, jData);
				}
				break;

			case MessageType.Error:
				Debug.WriteLine ("Error");
				SocketReceivedError (socketMessageInfo, data);
				break;

			case MessageType.Noop:
				Debug.WriteLine ("Noop");
				break;

			default:
				Debug.WriteLine ("Something went wrong here...");
				if (!string.IsNullOrEmpty (data)) {
					jObjData = JObject.Parse (data);
					Debug.WriteLine ("jObjData = {0}", jObjData.ToString ());
				}
				break;
			}

		}
コード例 #42
0
ファイル: Form1.cs プロジェクト: Seuntjie900/SeuntjieBot
        void tmp_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            if (e.Message == "3probe")
            {
                tmp.Send("5");
            }
            else
            {

                if (e.Message != "3")
                {

                    if (e.Message.StartsWith("42[\"chat\","))
                    {

                        string msg = e.Message.Substring("42[\"chat\",".Length);
                        msg = msg.Substring(0, msg.LastIndexOf("]"));
                        msg = msg.Replace("\"to\":0,", "\"to\":null,");
                        AddMessage(msg);
                        mdchat tmpChat = SeuntjieBot.SeuntjieBot.JsonDeserialize<mdchat>(msg);
                        if (tmpChat.type == "text" || tmpChat.type == "private")
                        {
                            chat tmpChat2 = tmpChat.ToChat();
                            if (seuntjie!=null)
                            seuntjie.ReceiveMessage(tmpChat2);
                        }
                        else if (tmpChat.type == "tip" )
                        {
                            if (tmpChat.tip!=null)
                            {
                                if (int.Parse(tmpChat.tip.user_id) == seuntjie.OwnID)
                                seuntjie.ReceiveTip(double.Parse(tmpChat.tip.amount), int.Parse(tmpChat.from.user_id));
                            }
                        }
                    }

                }
            }
            //throw new NotImplementedException();
        }
コード例 #43
0
 private void _ws_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
 {
     Received?.Invoke(this, e.Message);
 }
コード例 #44
0
        void m_WebSocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            if (string.IsNullOrEmpty(e.Message))
            {
                return;
            }

            int pos = e.Message.IndexOf(' ');

            string name;
            string parameter;
            string token = string.Empty;

            if (pos > 0)
            {
                name      = e.Message.Substring(0, pos);
                parameter = e.Message.Substring(pos + 1);

                pos = name.IndexOf('-');

                if (pos > 0)
                {
                    token = name.Substring(pos + 1);
                    name  = name.Substring(0, pos);
                }
            }
            else
            {
                name      = e.Message;
                parameter = string.Empty;
            }

            IJsonExecutor executor = GetExecutor(name, token);

            if (executor == null)
            {
                return;
            }

            object value;

            try
            {
                if (!executor.Type.IsSimpleType())
                {
                    value = DeserializeObject(parameter, executor.Type);
                }
                else if (parameter.GetType() == executor.Type)
                {
                    value = parameter;
                }
                else
                {
                    value = Convert.ChangeType(parameter, executor.Type, null);
                }
            }
            catch (Exception exc)
            {
                m_WebSocket_Error(this, new ErrorEventArgs(new Exception("DeserializeObject exception", exc)));
                return;
            }

            try
            {
                executor.Execute(this, token, value);
            }
            catch (Exception exce)
            {
                m_WebSocket_Error(this, new ErrorEventArgs(new Exception("Message handling exception", exce)));
            }
        }
コード例 #45
0
 private void OnMessageReceived(object sender, MessageReceivedEventArgs messageReceivedEventArgs)
 {
     var serverMessages = JArray.Parse(messageReceivedEventArgs.Message);
     foreach (var message in serverMessages) {
         ProcessMessage((JObject)message);
     }
 }
コード例 #46
0
 /// <summary>
 /// Called when a WebSocket message is received.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="MessageReceivedEventArgs"/> instance containing the event data.</param>
 private void OnWebSocketMessageReceived(object sender, W4N.MessageReceivedEventArgs e)
 {
     DecodeJson(e.Message);
 }
コード例 #47
0
 private void OnMessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
 {
     MessageReceived(this, new MessageReceivedEventArgs(e.Message));
 }
コード例 #48
0
 private void OnWsMessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
 {
     _handler.OnMessageReceived(e.Message);
 }
コード例 #49
0
 private void OnWebSocketText(object sender, MessageReceivedEventArgs e)
     => OnTextMessage(e.Message);
コード例 #50
0
 private void WsClient_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     OnMessage(e.Message);
 }
コード例 #51
0
ファイル: NativeContainer.cs プロジェクト: etp-work/ThePower
 void websocketclient_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     logger.Debug("WebSocket Native Client MessageReceived:" + e.Message);
     try
     {
         JObject json = JObject.Parse(e.Message);
         string type = (string)json["type"];
         switch (type)
         {
             case "STARTPORTAL":
                 string portaltype = (string)json["portaltype"];
                 switch (portaltype)
                 {
                     case "STBHTML":
                         Thread portalThread = new Thread(new ParameterizedThreadStart(startPortal));
                         portalThread.Start(json);
                         break;
                 }
                 break;
             default:
                 this.BeginInvoke((Action)delegate
                 {
                     if (null != portal)
                     {
                         portal.onMessage(json);
                     }
                 });
                 break;
         }
     }
     catch (Exception ex)
     {
         logger.Error(ex.Message, ex);
     }
 }
コード例 #52
0
        private void OnWebsocketMessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
        {
            var    receivedMessage = e.Message;
            string data;

            if (receivedMessage.Length < 8)
            {
                return;
            }
            else if (this.UseSockJs)
            {
                receivedMessage = receivedMessage.Substring(3, receivedMessage.Length - 5);
                data            = receivedMessage.Substring(2);
                data            = data.Replace("\\\"", "\"");
            }
            else
            {
                data = receivedMessage.Substring(2);
            }

            string messageType = MessageType.GetTypeOfMessage(receivedMessage);

            Log.Debug($"WebsocketMessage [{messageType}]: {receivedMessage}");
            switch (messageType)
            {
            case MessageType.PING:
                this.webSocket.Send(MessageGenerator.GeneratePingAnswerMessage(this.UseSockJs));
                break;

            case MessageType.IO_CONNECTED:
                this.receivedIOConnected = true;
                this.reconnectInProgress = false;

                Task.Run(() =>
                {
                    foreach (var registeredService in this.RegisteredServices.Values)
                    {
                        Log.Debug($"Re-registering service '{registeredService.Uuid}' after IO_CONNECTED");
                        this.RegisterAsync(registeredService).Wait();
                    }

                    foreach (var cacheEntry in this.EventCache)
                    {
                        foreach (var cachedEventData in cacheEntry.Value.ToArray())
                        {
                            if (this.PublishAsync(cacheEntry.Key, cachedEventData).Result)
                            {
                                cacheEntry.Value.Remove(cachedEventData);
                            }
                        }
                    }
                });

                this.Connected?.Invoke(this, EventArgs.Empty);

                break;

            case MessageType.NIO_ALREADY_CONNECTED:
                this.ConnectionFailed?.Invoke(this, EventArgs.Empty);

                break;

            case MessageType.NIO_UNAUTHORIZED_CONNECTION:
                this.ConnectionFailed?.Invoke(this, EventArgs.Empty);

                break;

            case MessageType.IO_REGISTERED:
                this.receivedIORegistered = true;
                this.Registered?.Invoke(this, EventArgs.Empty);

                break;

            case MessageType.NIO_REGISTRATION_ERROR:
                this.RegistrationFailed?.Invoke(this, EventArgs.Empty);

                break;

            case MessageType.NIO_UNEXPECTED_REGISTRATION_ERROR:
                this.RegistrationFailed?.Invoke(this, EventArgs.Empty);

                break;

            case MessageType.IO_PUBLISHED:
                this.receivedIOPublished = true;
                this.EventPublished?.Invoke(this, EventArgs.Empty);

                break;

            case MessageType.NIO_EVENT_FORWARDING_ERROR:
                this.EventPublishingFailed?.Invoke(this, EventArgs.Empty);

                break;

            case MessageType.NIO_UNEXPECTED_EVENT_FORWARDING_ERROR:
                this.EventPublishingFailed?.Invoke(this, EventArgs.Empty);

                break;

            case MessageType.FUNCTION_CALLBACK:
                // Simple fix for https://cb.ipa.fraunhofer.de/cb/issue/164519 (Invalid escape of nested JSON trough websocket)
                data = data.Replace("\\\\", "\\");

                var functionCall = JsonConvert.DeserializeObject <FunctionCall>(data);
                this.HandleFunctionCall(functionCall);

                break;

            case MessageType.CONFIG:
                var    configMessage = JsonConvert.DeserializeObject <Dictionary <string, object> >(data);
                string serviceUuid   = configMessage["uuid"].ToString();
                if (this.RegisteredServices.ContainsKey(serviceUuid))
                {
                    var service          = this.RegisteredServices[serviceUuid];
                    var configParameters = ((JObject)configMessage["params"]).ToObject <Dictionary <string, object> >();
                    foreach (var configParameter in configParameters)
                    {
                        service.Configuration.Parameters[configParameter.Key] = new ConfigurationParameterValue(configParameter.Value);
                    }

                    ConfigurationParameterReceivedEventArgs eventArgs = new ConfigurationParameterReceivedEventArgs(service, configParameters);
                    this.ConfigurationParameterReceived?.Invoke(this, eventArgs);
                    if (service.AutoPersistConfiguration)
                    {
                        service.Configuration.SaveToFile(service.ConfigurationPersistencePath);
                    }
                }
                else
                {
                    Log.Error($"Service '{serviceUuid}' not registered via this MsbClient");
                }

                break;

            default:
                Log.Error($"Unknown type of message: {receivedMessage}");
                break;
            }
        }
コード例 #53
0
ファイル: Client.cs プロジェクト: ase-lab/SoD_Sensor_v2
		/// <summary>
		/// Raw websocket messages from server - convert to message types and call subscribers of events and/or callbacks
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void wsClient_MessageReceived(object sender, MessageReceivedEventArgs e)
		{
			

			IMessage iMsg = SocketIOClient.Messages.Message.Factory(e.Message);

			if (iMsg.Event == "responseMsg")
				Trace.WriteLine(string.Format("InvokeOnEvent: {0}", iMsg.RawMessage));

			switch (iMsg.MessageType)
			{
				case SocketIOMessageTypes.Disconnect:
					this.OnMessageEvent(iMsg);
					if (string.IsNullOrWhiteSpace(iMsg.Endpoint)) // Disconnect the whole socket
						this.Close();
					break;
				case SocketIOMessageTypes.Heartbeat:
					this.OnHeartBeatTimerCallback(null);
					break;
				case SocketIOMessageTypes.Connect:
				case SocketIOMessageTypes.Message:
				case SocketIOMessageTypes.JSONMessage:
				case SocketIOMessageTypes.Event:
				case SocketIOMessageTypes.Error:
					this.OnMessageEvent(iMsg);
					break;
				case SocketIOMessageTypes.ACK:
					this.registrationManager.InvokeCallBack(iMsg.AckId, iMsg.Json);
					break;
				default:
					Trace.WriteLine("unknown wsClient message Received...");
					break;
			}
		}
コード例 #54
0
 private void SockJsClient_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e)
 {
     //接受到消息后还需要根据SockJs的格式处理一下
     this.OnMessageReceived?.Invoke(sender, new MessageReceivedEventArgs(e.Message));
 }