private void CharCreation_OnMessageReceived(MessageSubscription<PlayerCreationEventArgs> s, MessageReceivedEventArgs<PlayerCreationEventArgs> args)
 {
     if (args.Message.IsDealer == false)
     {
         this.gameObject.SetActive(false);
     }
 }
 public void MessageNotifyAsunc(MessageReceivedEventArgs e)
 {
     if (Handler != null)
     {
         var t = (MulticastDelegate)Handler;
         object param = null;
         try // Десериализуем если есть данные, если ошибка, значит неверный формат
         {
             if (e.MessageData != null && e.MessageData.Length > 0)
                 param = SerializeHelper.DeserializeFromBytes(e.MessageData, DataType);
             else
                 e.IsError = IsRequired;
         }
         catch (Exception ex)
         {
             e.IsError = true;
         }
         t.DynamicInvoke(e, param);
         //try // Вызываем обработчик (на его внутренние ошибки нам пофиг) (хотя try - тут не нужен)
         //{
         //    t.DynamicInvoke(e, param);
         //}
         //catch (Exception ex) { }
     }
 }
        private void PlayerLoadedReceived(MessageReceivedEventArgs ev)
        {
            PlayerLoadedMessage message = (PlayerLoadedMessage) ev.Message;

            NetworkPlayer player = this.players.GetPlayers ().Where (p => p.NetworkID == message.NetworkID).FirstOrDefault ();

            if(player == null)
                return;

            PlayerInfoMessage infomsg = new PlayerInfoMessage ()
            {
                NetworkID = player.NetworkID,
                Name = player.Character.Name,
                Animation = player.Character.Animation,
                Moving = player.Character.Moving,
                TileSheet = player.Character.TileSheet,
                Location = new Point (player.Character.Location.IntX, player.Character.Location.IntY),
                WorldName = player.Character.WorldName
            };

            foreach(NetworkPlayer destPlayer in this.players.GetPlayers ())
            {
                if(destPlayer.Connection != player.Connection)
                    destPlayer.Connection.Send (infomsg);
            }
        }
 void MessageReceived_TIGGC(object sender, MessageReceivedEventArgs e)
 {
     if (String.Compare(e.Message.Command, "TIGGC", true) != 0) return;
     Int64 memUsage = GC.GetTotalMemory(false);
     GC.Collect();
     CurrentSession.SendTwitterGatewayServerMessage(String.Format("Garbage Collect: {0:###,##0} bytes -> {1:###,##0} bytes", memUsage, GC.GetTotalMemory(false)));
 }
示例#5
0
 protected void OnMessageReceived(object sender, MessageReceivedEventArgs e)
 {
     if (MessageReceived != null)
     {
         MessageReceived(this, e);
     }
 }
        private void LoginRequestReceived(MessageReceivedEventArgs ev)
        {
            var msg = (LoginMessage)ev.Message;

            ISession session = this.sessionfactory.OpenSession ();

            Account account = session.CreateCriteria<Account>()
                .Add(Restrictions.InsensitiveLike("Username", msg.Username ))
                .Add(Restrictions.Eq("Password", msg.Password ))
                .List<Account>().FirstOrDefault();

            if (account == null || this.players.ContainsPlayer((uint)account.ID))
            {
                ev.Connection.Send (new LoginFailedMessage (ConnectionRejectedReason.BadLogin));
                return;
            }

            Character character = session.CreateCriteria<Character> ()
                .Add(Restrictions.Eq("AccountID", account.ID))
                .List<Character>().FirstOrDefault();

            character.Location = new ScreenPoint(character.MapX * 32, character.MapY * 32);
            character.Animation = Enum.GetName (typeof(Directions), character.Direction);
            character.NextMoveActive = true;

            // Create player
            NetworkPlayer player = new NetworkPlayer();
            player.Character = character;
            player.AccountID = account.ID;
            //player.NetworkID = ++networkid;
            player.NetworkID = (uint) account.ID;
            player.Character.NetworkID = player.NetworkID;
            player.Connection = ev.Connection;
            player.Character.MapChunkName = this.GetChunkName(player.Character.WorldName, player.Character.MapLocation);
            player.State = PlayerState.LoggedIn;

            // Add to the list of players in the servers memory
            this.players.AddPlayer(player);

            // Send them authentication ID
            player.Connection.Send(new LoginSuccessMessage () { NetworkIDAssigned = player.NetworkID });

            var handler = this.UserLoggedIn;
            if(handler != null)
                handler(this, new UserEventArgs(player));

            // Update other players
            var updatemsg = new PlayerUpdateMessage ()
            {
                CharacterName = player.Character.Name,
                NetworkID = player.NetworkID,
                Action = PlayerUpdateAction.Add
            };

            foreach (var tmp in this.players.GetPlayers())
                tmp.Connection.Send(updatemsg);

            session.Close ();
        }
 void CharCreation_OnMessageReceived(MessageSubscription<PlayerCreationEventArgs> s, MessageReceivedEventArgs<PlayerCreationEventArgs> args)
 {
     if (!args.Message.IsDealer)
     {
         this.InventoryCanvas.SetActive(false);
         this.gameObject.SetActive(false);
     }
 }
 protected virtual void OnMessageReceived(MessageReceivedEventArgs e)
 {
     EventHandler<MessageReceivedEventArgs> handler = MessageReceived;
     if (handler != null)
     {
         handler(this, e);
     }
 }
        private void ClientEventRequestReceived(MessageReceivedEventArgs ev)
        {
            var message = (ClientEventRequestMessage) ev.Message;

            var player = this.players.GetPlayer (message.NetworkID);

            TestScript script = new TestScript ();
            script.Trigger (player);
        }
        void fileWatcher_Created(object sender, FileSystemEventArgs e)
        {
            FSWMessage msg = new FSWMessage(e);

            MessageReceivedEventArgs args = new MessageReceivedEventArgs(msg);
            if (MessageReceived != null)
            {
                MessageReceived(this, args);
            }
        }
        private void ClientConnected(MessageReceivedEventArgs ev)
        {
            var msg = (ConnectMessage)ev.Message;

            if (msg.Version < this.MinimumVersion)
            {
                ev.Connection.Send (new ConnectionRejectedMessage () { Reason = ConnectionRejectedReason.IncompatableVersion });

                this.Disconnect(ev.Connection);
            }
        }
示例#12
0
 void networkingManager_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     switch (e.Message.Type)
     {
         case NetworkMessage.MessageType.ServerGameState:
             if ((string)e.Message.Content == "Lobby")
             {
                 hasEnded = true;
             }
             break;
     }
 }
示例#13
0
	private static void OnMessageReceived(object sender,MessageReceivedEventArgs e)
	{
		var client = (WebSocketClient)sender;
		Console.WriteLine("Received by [{0}]",((IPEndPoint)client.Socket.RemoteEndPoint).ToString());

		var received_msg = Encoding.UTF8.GetString(e.DecodedMessage);
		Console.WriteLine("Received message: {0}",received_msg);
		
		var msg = new WebSocketMessage();
		msg.Append(received_msg);

		client.SendMessage(msg);
	}
示例#14
0
 private void FahClientMessageReceived(object sender, MessageReceivedEventArgs e)
 {
    AppendToMessageDisplayTextBox(String.Empty);
    AppendToMessageDisplayTextBox(e.JsonMessage.ToString());
    
    for (var slotCollection = e.TypedMessage as SlotCollection; slotCollection != null; slotCollection = null)
    {
       foreach (var slot in slotCollection)
       {
          _fahClient.SendCommand("slot-options " + slot.Id + " client-type client-subtype cpu-usage machine-id max-packet-size core-priority next-unit-percentage max-units checkpoint pause-on-start gpu-index gpu-usage");
          _fahClient.SendCommand("simulation-info " + slot.Id);
       }
    }
 }
        private void ClientMovementMessageReceived(MessageReceivedEventArgs ev)
        {
            ClientMovementMessage message = (ClientMovementMessage) ev.Message;
            NetworkPlayer player = this.players.GetPlayer (message.NetworkID);

            if(player == null)
                return; // Must have gotten disconnected

            Directions direction = (Directions) message.Direction;

            player.Character.MovementQueue.Enqueue (new MovementInfo (new ScreenPoint (message.X, message.Y), direction, MovementStage.EndMovement, MovementType.Destination, message.Animation));

            if(!this.movement.ContainsCharacter (player.Character))
                this.movement.AddToProvider (player.Character);
        }
 public object RunSync(MessageReceivedEventArgs e)
 {
     object obj = null;
     try
     {
         if (InputType != typeof(void))
             obj = SerializeHelper.DeserializeFromBytes(e.MessageData, InputType);
     }
     catch (Exception ex)
     {
         throw new ParamParseException(ex);
     }
     var t = (MulticastDelegate)Handler;
     object result = (InputType != typeof(void)) ? t.DynamicInvoke(e, obj) : t.DynamicInvoke(e);
     return result;
 }
示例#17
0
    void networkingManager_MessageReceived(object sender, MessageReceivedEventArgs e)
    {
        switch (e.Message.Type)
        {
            case NetworkMessage.MessageType.ServerGameState:
                if ((string)e.Message.Content == "Game")
                {
                    startGame = true;
                }
                break;

            case NetworkMessage.MessageType.ServerGameResults:
                rankings = (List<KeyValuePair<string, int>>)e.Message.Content;

                updateRanking = true;
                break;
        }
    }
示例#18
0
 internal void SetResponse(MessageReceivedEventArgs e)
 {
     object param = null;
     try
     {
         if (e.MessageData != null && e.MessageData.Length > 0)
             param = SerializeHelper.DeserializeFromBytes(e.MessageData, ResultType);
         else
             e.IsError = IsRequired;
     }
     catch (Exception ex)
     {
         IsError = true;
         Exception = new InvalidCastException("Ошибка разбора результата, или результат имеет тип отличный от указанного.", ex);
     }
     Result = param;
     IsResponse = true;
     Wait.Set();
 }
        void OnMessageReceived(object sender, MessageReceivedEventArgs e)
        {
            switch (e.Message.Cmd) {
                case MessageType.GatewayInputsUpdate:
                    if (GatewayInputsUpdate != null) GatewayInputsUpdate(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.GatewayOutputsSet:
                    if (GatewayOutputsSet != null) GatewayOutputsSet(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.MPSControllerLoadLocations:
                    if (MPSControllerLoadLocations != null) MPSControllerLoadLocations(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.MPSControllerProcess:
                    if (MPSControllerProcess != null) MPSControllerProcess(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.MPSControllerProcessComplete:
                    if (MPSControllerProcessComplete != null) MPSControllerProcessComplete(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.MPSControllerSuccess:
                    if (MPSControllerSuccess != null) MPSControllerSuccess(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.MPSControllerFailure:
                    if (MPSControllerFailure != null) MPSControllerFailure(sender, new MessageReceivedEventArgs(e.Message));
                    break;

                case MessageType.TagRead:
                    if (ReadTag != null) ReadTag(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.TagWrite:
                    if (WriteTag != null) WriteTag(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.TagUpload:
                    if (TagUpload != null) TagUpload(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.TagEventSubscribe:
                    if (TagEventSubscribe != null) TagEventSubscribe(sender, new MessageReceivedEventArgs(e.Message));
                    break;
                case MessageType.TagEventUnsubscribe:
                    if (TagEventUnsubscribe != null) TagEventUnsubscribe(sender, new MessageReceivedEventArgs(e.Message));
                    break;
            }
        }
        private void PlayerRequestReceived(MessageReceivedEventArgs ev)
        {
            var msg = (PlayerRequestMessage) ev.Message;

            NetworkPlayer player = this.players.GetPlayers ().Where (p => p.NetworkID == msg.RequestedPlayerNetworkID).FirstOrDefault ();

            if(player == null)
                return;

            PlayerInfoMessage infomsg = new PlayerInfoMessage ()
            {
                NetworkID = player.NetworkID,
                Name = player.Character.Name,
                Animation = player.Character.Animation,
                Moving = player.Character.Moving,
                TileSheet = player.Character.TileSheet,
                Location = new Point (player.Character.Location.IntX, player.Character.Location.IntY),
                WorldName = player.Character.WorldName
            };

            ev.Connection.Send (infomsg);
        }
        internal void RunVoidAsync(MessageReceivedEventArgs e)
        {
            try
            {
                var t = (Delegate)Handler;
                object obj = null;
                try
                {
                    obj = SerializeHelper.DeserializeFromBytes(e.MessageData, InputType);
                }
                catch (Exception ex)
                {
                    throw new ParamParseException(ex);
                }

                Task.Run(() => { t.DynamicInvoke(e, obj); });
            }
            catch (Exception ex)
            {

            }
        }
        private void PlayersRequestReceived(MessageReceivedEventArgs ev)
        {
            // Get the player, figure out which players are around, and send send those players
            var playerlist = this.players.GetPlayers ();

            foreach(NetworkPlayer player in playerlist)
            {
                if(player.Connection == ev.Connection)
                    continue;

                PlayerInfoMessage infomsg = new PlayerInfoMessage ()
                {
                    NetworkID = player.NetworkID,
                    Name = player.Character.Name,
                    Animation = player.Character.Animation,
                    Moving = player.Character.Moving,
                    TileSheet = player.Character.TileSheet,
                    Location = new Point (player.Character.Location.IntX, player.Character.Location.IntY),
                    WorldName = player.Character.WorldName
                };

                ev.Connection.Send (infomsg);
            }
        }
示例#23
0
 private void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     Console.WriteLine("Mengirim data: " + e.Message);
     lastMessageReceived = e.Message;
     messageReceiveEvent.Set();
 }
示例#24
0
 private async void Transport_MessageReceived(object sender, MessageReceivedEventArgs e)
 => await _callbackQueue.Enqueue(() => ProcessMessage(e)).ConfigureAwait(false);
示例#25
0
 protected virtual void PublishMessageReceived(ChannelBase sender, MessageReceivedEventArgs eventArgs)
 {
     eventArgs.SessionId = this.sessionId;
     OnMessageReceived?.Invoke(sender, eventArgs);
 }
示例#26
0
 private void OnMessageReceived(MessageReceivedEventArgs e)
 {
     this.MessageReceived?.Invoke(this, e);
 }
示例#27
0
 public static void mesajgeldi(object sender, MessageReceivedEventArgs args) // mesaj geldi eventi
 {
     Handler.komuthandle(args.Data, args.Metadata);
 }
示例#28
0
        /// <summary>
        /// socket消息接收处理
        /// </summary>
        /// <param name="e"></param>
        void OnOnlineMessageReceived(MessageReceivedEventArgs e)
        {
            var tuple0 = (Tuple <string, object>)e.Protocol.Content;

            switch (tuple0.Item1)
            {
            case "message":
                Dispatcher.Invoke(delegate
                {
                    label1.Text += (string)tuple0.Item2 + "\n";
                    label1.ScrollToEnd();
                });
                break;

            case "file_return":
                switch ((string)tuple0.Item2)
                {
                case "succeed":
                    MessageBox.Show("上传文件成功");
                    break;

                case "File not Exits":
                    MessageBox.Show("未找到文件");
                    break;

                default:
                    MessageBox.Show("失败");
                    break;
                }
                break;

            case "cmd_return":
                if ((string)tuple0.Item2 == "success")
                {
                    type = false;
                    Dispatcher.Invoke(delegate
                    {
                        label1.Text += "成功切换至命令行模式\n";
                        label1.ScrollToEnd();
                    });
                }
                break;

            case "chat_return":
                if ((string)tuple0.Item2 == "success")
                {
                    type = false;
                    Dispatcher.Invoke(delegate
                    {
                        label1.Text += "成功切换至聊天模式\n";
                        label1.ScrollToEnd();
                    });
                }
                break;

            case "cmd_text":
                Dispatcher.Invoke(delegate
                {
                    label1.Text += (string)tuple0.Item2 + "\n";
                    label1.ScrollToEnd();
                });
                break;

            default:
                var    tuple      = (byte[])tuple0.Item2;
                string path       = (string)tuple0.Item1;
                var    filestream = new FileStream(path, FileMode.Create);
                filestream.Write(tuple, 0, tuple.Length);
                filestream.Close();
                MessageBox.Show("下载文件成功");
                break;
            }
        }
示例#29
0
        private void WSClient_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            Logger.DumpLog(e.Message, -1);
            if (e.Message == "3probe")
            {
                WSClient.Send("5");

                long tmpid = this.id++;

                Requests.Add(tmpid, ReqType.balance);
                WSClient.Send("42" + tmpid + "[\"access_token_data\",{\"access_token\":\"" + accesstoken + "\"}]");
                tmpid = this.id++;
                Thread.Sleep(200);
                Requests.Add(tmpid, ReqType.hash);
                WSClient.Send("42" + tmpid + "[\"get_hash\"]");
                FinishedLogin = true;
            }
            else if (e.Message == "3")
            {
            }
            else
            {
                try
                {
                    string response = e.Message;
                    response = response.Substring(2);
                    string id  = response.Substring(0, response.IndexOf("["));
                    long   lid = 0;

                    if (long.TryParse(id, out lid))
                    {
                        if (Requests.ContainsKey(lid))
                        {
                            ReqType tmp = Requests[lid];
                            Requests.Remove(lid);
                            switch (tmp)
                            {
                            case ReqType.balance:
                                response = response.Substring(response.IndexOf("{"));
                                response = response.Substring(0, response.LastIndexOf("}") + 1); ProcessBalance(response); break;

                            case ReqType.hash:
                                response = response.Substring(response.IndexOf("\"") + 1);
                                response = response.Substring(0, response.LastIndexOf("\"")); ProcessHash(response); break;

                            case ReqType.bet:
                                if (response.IndexOf("{") >= 0)
                                {
                                    response = response.Substring(response.IndexOf("{"));
                                    response = response.Substring(0, response.LastIndexOf("}") + 1); ProcessBet(response);
                                }
                                else
                                {
                                    //Parent.updateStatus(response);
                                    if (response.Contains("HASH ERROR") || response.Contains("HASH NOT FOUND"))
                                    {
                                        long tmpid = this.id++;
                                        Requests.Add(tmpid, ReqType.balance);
                                        WSClient.Send("42" + tmpid + "[\"get_hash\"]");
                                    }
                                    else if (response.Contains("balance too low"))
                                    {
                                        callError("balance too low", false, ErrorType.BalanceTooLow);
                                    }
                                    else if (response.Contains("wager too low"))
                                    {
                                        callError("wager too low", false, ErrorType.BetTooLow);
                                    }
                                    else     //if (response.Contains("bet profit too low"))
                                    {
                                        callError(response, false, ErrorType.InvalidBet);
                                    }
                                }
                                break;

                            case ReqType.tip:
                                if (e.Message.Contains("SENT"))
                                {
                                    callTipFinished(true, "");
                                }
                                else
                                {
                                    callTipFinished(false, e.Message);
                                    callError(e.Message, false, ErrorType.Tip);
                                }
                                break;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.DumpLog(ex);
                }
            }
        }
示例#30
0
        public void Connection_Socket_MessageReceived(object send, MessageReceivedEventArgs e)
        {
            object Obj;

              if (SimpleJson.SimpleJson.TryDeserializeObject(e.Message, out Obj))
              {
            JsonObject Message = (JsonObject)Obj;
            if (!Message.ContainsKey("type"))
              return;
            switch (Message["type"].ToString())
            {
              case "registered":
            int id = Convert.ToInt32(Message["player_id"]);
            if (id >= PlayerNames.Length)
              Array.Resize(ref PlayerNames, id + 1);
            PlayerNames[id] = Message["player_name"].ToString();
            if (Message["player_name"].ToString() == PlayerName)
            {
              Array.Resize(ref myIDs, myIDs.Length + 1);
              myIDs[myIDs.Length - 1] = id;
            }

            Invoke((MethodInvoker)delegate
                   {
                     StatLabel.Text = PlayerNames[PlayerNames.Length - 1] + " joined. Waiting for start signal";
                   });
            string ContentPackDir = Message["content_pack"].ToString();
            MainForm.Theme = ContentPackDir;
            //if (!Directory.Exists(@".\" + ContentPackDir))
            //{
            //    string Host = Connection.ContentPackHost + "/" + ContentPackDir + ".zip";
            //    WebClient c = new WebClient();
            //    c.DownloadFile(Host, @".\" + ContentPackDir + ".zip");
            //    System.IO.Compression.ZipFile.ExtractToDirectory(@".\" + ContentPackDir + ".zip", @".\" + ContentPackDir);
            //    File.Delete(@".\" + ContentPackDir + ".zip");
            //}
            break;
              case "game_created":
            Connection.GameID = Message["game_id"].ToString();

            Invoke((MethodInvoker)delegate
                   {
                     StartButton.Enabled = true;
                   });
            break;
              case "next":
            PleaseCloseForm = true;
            break;
              case "pack_list":
            JsonArray Themes = (JsonArray)Message["packs"];
            SubInitForm = new ThemeForm(Themes);
            SubInitForm.ShowDialog();

            JsonObject Answer = new JsonObject();
            Answer.Add("type", "new_game");
            Answer.Add("content_pack", (SubInitForm as ThemeForm).Theme);

            Connection.Send(Answer);
            break;
            }
              }
        }
示例#31
0
#pragma warning disable 1998
        async Task HandleMessageReceived(MessageReceivedEventArgs e)
#pragma warning restore 1998
        {
            // purge old pending claims (avoids memory leak)
            foreach (var id in _pendingClaims.Keys)
            {
                if (_pendingClaims.TryGetValue(id, out var claim) && claim.CreatedTime.AddMinutes(1) < DateTime.Now)
                {
                    _pendingClaims.TryRemove(id, out _);
                }
            }

            foreach (var id in _pendingKakeraClaims.Keys)
            {
                if (_pendingKakeraClaims.TryGetValue(id, out var claim) && claim.CreatedTime.AddMinutes(1) < DateTime.Now)
                {
                    _pendingKakeraClaims.TryRemove(id, out _);
                }
            }

            var options = _options.CurrentValue;

            // enabled, message author is mudae, channel is configured, embed exists
            if (!options.Enabled || !(e.Message is IUserMessage message && _userFilter.IsMudae(message.Author)) || _channelList.CurrentValue.Items.All(x => x.Id != message.ChannelId) || message.Embeds.Count == 0)
            {
                return;
            }

            var stopwatch = Stopwatch.StartNew();

            var channel = (IMessageChannel)e.Client.GetChannel(message.ChannelId);
            var guild   = channel is IGuildChannel gc?e.Client.GetGuild(gc.GuildId) : null;

            var logPlace = $"channel '{channel.Name}' ({channel.Id}, server '{guild?.Name}')";

            var embed       = message.Embeds[0];
            var description = embed.Description.Split('\n', StringSplitOptions.RemoveEmptyEntries);
            var character   = new CharacterInfo(embed.Author.Name, description[0]);

            // ignore $im messages
            if (!options.BypassImCheck && description.Any(l => l.StartsWith("claims:", StringComparison.OrdinalIgnoreCase) || l.StartsWith("likes:", StringComparison.OrdinalIgnoreCase)))
            {
                return;
            }

            _logger.LogDebug($"Detected character '{character}' in {logPlace}.");

            _pendingKakeraClaims[message.Id] = new PendingClaim(logPlace, channel, message, character, stopwatch);

            // ignore already claimed
            if (embed.Footer?.Text.StartsWith("belongs", StringComparison.OrdinalIgnoreCase) == true)
            {
                return;
            }

            var wishedBy = message.Content.StartsWith("wished by", StringComparison.OrdinalIgnoreCase) ? message.GetUserIds().ToArray() : null;

            // must be wished or included in a user wishlist
            if (!_characterFilter.IsWished(character, wishedBy))
            {
                _logger.LogInformation($"Ignoring character '{character}' in {logPlace} because they are not wished.");
                return;
            }

            // check cooldown
            var state = _states.GetOrAdd(channel.Id, new ClaimState());
            var now   = DateTime.Now;

            if (!options.IgnoreCooldown && now < state.CooldownResetTime)
            {
                _logger.LogWarning($"Ignoring character '{character}' in {logPlace} because of cooldown. Cooldown finishes in {state.CooldownResetTime - now}.");
                return;
            }

            _logger.LogWarning($"Attempting to claim character '{character}' in {logPlace}...");

            _pendingClaims[message.Id] = new PendingClaim(logPlace, channel, message, character, stopwatch);
        }
示例#32
0
 private void NotificationsOnServerMessageReceived(object sender, MessageReceivedEventArgs e)
 {
     Execute(MessageTarget.Server, e);
 }
示例#33
0
 protected abstract void Invoking(MessageReceivedEventArgs e, ComplexMessage elements = null);
示例#34
0
文件: Manager.cs 项目: trigrass2/oms
        /// <summary>
        /// This method handles received messages from other applications via DotNetMQ.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e">Message parameters</param>
        private void Manager_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            // Get message
            var Message = e.Message;

            try
            {
                // Get message data
                var MsgData = GeneralHelper.DeserializeObject(Message.MessageData) as MsgData;

                switch (MsgData.MsgCode)
                {
                case MsgCodes.ConnectSubscriber:      ConnectSubscriber(Message);     break;

                case MsgCodes.DisconnectSubscriber:   DisconnectSubscriber(Message);  break;

                case MsgCodes.SubscribeProperty:      SubscribeProperty(Message);     break;

                case MsgCodes.SubscribeProperties:    SubscribeProperties(Message);   break;

                case MsgCodes.RemoveProperty:         RemoveProperty(Message);        break;

                case MsgCodes.RemoveProperties:       RemoveProperties(Message);      break;

                case MsgCodes.PLCTagsChanged:         PLCTagsChanged(Message);        break;

                case MsgCodes.PLCTagChanged:          PLCTagChanged(Message);         break;

                case MsgCodes.ResultSubscribePLCTag: /* Da Implementare */ break;

                case MsgCodes.ResultSubscribePLCTags: /* Da Implementare */ break;

                case MsgCodes.ResultRemovePLCTag: /* Da Implementare */ break;

                case MsgCodes.ResultRemovePLCTags: /* Da Implementare */ break;

                case MsgCodes.ResultStartCheckPLCTags: /* Da Implementare */ break;

                case MsgCodes.ResultStopCheckPLCTags: /* Da Implementare */ break;

                case MsgCodes.ResultSetPLCTag: /* Da Implementare */ break;

                case MsgCodes.ResultSetPLCTags: /* Da Implementare */ break;

                case MsgCodes.ResultGetPLCTag: /* Da Implementare */ break;

                case MsgCodes.ResultGetPLCTags: /* Da Implementare */ break;

                case MsgCodes.ResultConnectPLC: /* Da Implementare */ break;

                case MsgCodes.ResultDisconnectPLC: /* Da Implementare */ break;

                case MsgCodes.PLCStatusChanged: /* Da Implementare */ break;

                case MsgCodes.SubscribedPLCTags: /* Da Implementare */ break;

                case MsgCodes.PLCStatus: /* Da Implementare */ break;
                }
            }
            catch (Exception ex)
            {
                Logger.Warn(ex.Message, ex);
            }

            // Acknowledge that message is properly handled and processed. So, it will be deleted from queue.
            e.Message.Acknowledge();
        }
示例#35
0
 /// <summary>
 /// Handles a message that is received from the client. Fires the relevant event.
 /// </summary>
 private void MessageReceivedHandler(object sender, MessageReceivedEventArgs eventArgs)
 {
     OnMessageReceived(eventArgs);
 }
示例#36
0
 /// <summary>
 /// Fires MessageReceivedEvent in the current thread
 /// </summary>
 /// <param name="eventArgs"></param>
 private void OnMessageReceived(MessageReceivedEventArgs eventArgs)
 {
     _synchronizationContext.Post(e => MessageReceivedEvent.SafeInvoke(this, (MessageReceivedEventArgs)e),
                                  eventArgs);
 }
示例#37
0
 public void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     Received(e.Message.TrimEnd('\0'));
 }
示例#38
0
        private void OnMessageReceived(object sender, MessageReceivedEventArgs e)
        {
            using (Message message = e.GetMessage() as Message)
            {
                NetworkTags tag = (NetworkTags)message.Tag;
                if (!tag.ToString().StartsWith("TRAIN"))
                {
                    return;
                }

                if (tag != NetworkTags.TRAIN_LOCATION_UPDATE)
                {
                    Logger.Trace($"[SERVER] < {tag}");
                }

                switch (tag)
                {
                case NetworkTags.TRAIN_LEVER:
                    UpdateTrainLever(message, e.Client);
                    break;

                case NetworkTags.TRAIN_RERAIL:
                    UpdateTrainRerail(message, e.Client);
                    break;

                case NetworkTags.TRAIN_DERAIL:
                    UpdateTrainDerailed(message, e.Client);
                    break;

                case NetworkTags.TRAIN_SWITCH:
                    UpdateTrainSwitch(message, e.Client);
                    break;

                case NetworkTags.TRAIN_COUPLE:
                    UpdateCouplingState(message, e.Client, true);
                    break;

                case NetworkTags.TRAIN_UNCOUPLE:
                    UpdateCouplingState(message, e.Client, false);
                    break;

                case NetworkTags.TRAIN_COUPLE_HOSE:
                    UpdateCoupledHoseState(message, e.Client);
                    break;

                case NetworkTags.TRAIN_COUPLE_COCK:
                    UpdateCoupleCockState(message, e.Client);
                    break;

                case NetworkTags.TRAIN_SYNC_ALL:
                    SendWorldTrains(e.Client);
                    break;

                case NetworkTags.TRAIN_HOST_SYNC:
                    SyncTrainDataFromHost(message);
                    break;

                case NetworkTags.TRAIN_LOCATION_UPDATE:
                    UpdateTrainPosition(message, e.Client);
                    break;

                case NetworkTags.TRAINS_INIT:
                    NewTrainsInitialized(message, e.Client);
                    break;

                case NetworkTags.TRAINS_INIT_FINISHED:
                    TrainsFinishedInitilizing(e.Client);
                    break;

                case NetworkTags.TRAIN_REMOVAL:
                    OnCarRemovalMessage(message, e.Client);
                    break;

                case NetworkTags.TRAIN_DAMAGE:
                    OnCarDamage(message, e.Client);
                    break;

                case NetworkTags.TRAIN_AUTH_CHANGE:
                    OnAuthChange(message);
                    break;

                case NetworkTags.TRAIN_CARGO_CHANGE:
                    OnCargoChange(message, e.Client);
                    break;

                case NetworkTags.TRAIN_MU_CHANGE:
                    OnCarMUChange(message, e.Client);
                    break;
                }
            }
        }
示例#39
0
 static void RtmpConnection_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
 }
示例#40
0
 void webSocketClient_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     CurrentMessage = e.Message;
     MessageReceiveEvent.Set();
 }
示例#41
0
        private void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            try
            {
                var obj = Newtonsoft.Json.JsonConvert.DeserializeObject(e.Message, typeof(Cortex.Response.General)) as Cortex.Response.General;
                if (obj.error != null)
                {
                    string add = "";
                    if (Request2Method.ContainsKey(obj.id))
                    {
                        add = Request2Method[obj.id] + ": ";
                    }

                    OnError?.Invoke(this, add + obj.error.message);
                    return;
                }
                if (Request2Method.ContainsKey(obj.id))
                {
                    switch (Request2Method[obj.id])
                    {
                    case Cortex.Request.Subscribe.Method:
                        subscription = JsonConvert.DeserializeObject(e.Message, typeof(Cortex.Response.Subscribe)) as Cortex.Response.Subscribe;
                        OnMessage?.Invoke(this, $"Subscription processed.. receiving data for {string.Join(",", subscription.result?.success?.Select(s => s.streamName))}");
                        foreach (var item in subscription.result?.success)
                        {
                            SubsriptionDetails[item.streamName] = item;
                        }

                        break;

                    case Cortex.Request.CreateSession.Method:
                        session = JsonConvert.DeserializeObject(e.Message, typeof(Cortex.Response.CreateSession)) as Cortex.Response.CreateSession;

                        var subscribeRequest = new Cortex.Request.Subscribe();
                        subscribeRequest.__params__.cortexToken = auth.result.cortexToken;
                        subscribeRequest.__params__.session     = session.result.id;
                        subscribeRequest.__params__.streams     = new string[] { "eeg", "mot", "dev", "pow", "met", "com", "fac", "sys" };

                        SendReqest(subscribeRequest);

                        break;

                    case Cortex.Request.QueryHeadsets.Method:

                        devices = JsonConvert.DeserializeObject(e.Message, typeof(Cortex.Response.QueryHeadsets)) as Cortex.Response.QueryHeadsets;


                        if (devices.result.Length > 0)
                        {
                            OnDeviceChange?.Invoke(this, new Struct.Device()
                            {
                                Manufacturer = "Emotiv",
                                Model        = devices.result[0].id + "-" + devices.result[0].firmware,
                                Uid          = devices.result[0].id,
                            });
                        }

                        OnMessage?.Invoke(this, "Hadsets information received");

                        if (!string.IsNullOrEmpty(auth.result?.cortexToken))
                        {
                            OnMessage?.Invoke(this, "Creating session...");
                            var request = new Cortex.Request.CreateSession();
                            request.__params__.cortexToken = auth.result.cortexToken;
                            request.__params__.headset     = devices.result.FirstOrDefault()?.id;

                            SendReqest(request);
                        }
                        break;

                    case Cortex.Request.Authorize.Method:

                        auth = JsonConvert.DeserializeObject(e.Message, typeof(Cortex.Response.Authorize)) as Cortex.Response.Authorize;
                        OnMessage?.Invoke(this, "Authorized");
                        if (!string.IsNullOrEmpty(auth.result?.cortexToken))
                        {
                            OnMessage?.Invoke(this, "Getting headset information...");
                            SendReqest(new Cortex.Request.QueryHeadsets());
                        }

                        break;

                    case Cortex.Request.GetUserLogin.Method:
                        OnMessage?.Invoke(this, "Received user information");
                        user = JsonConvert.DeserializeObject(e.Message, typeof(Cortex.Response.GetUserLogin)) as Cortex.Response.GetUserLogin;
                        break;

                    case Cortex.Request.RequestAccess.Method:
                        access = JsonConvert.DeserializeObject(e.Message, typeof(Cortex.Response.RequestAccess)) as Cortex.Response.RequestAccess;

                        OnMessage?.Invoke(this, "Request Access Message received");
                        if (access.result?.accessGranted == true)
                        {
                            OnMessage?.Invoke(this, "Access granted. Going to authorize...");
                            var request = new Cortex.Request.Authorize();
                            request.__params__.clientId     = clientId;
                            request.__params__.clientSecret = clientSecret;
                            SendReqest(request);
                        }
                        else
                        {
                            if (!string.IsNullOrEmpty(access.result.message))
                            {
                                OnError?.Invoke(this, "Access not granted: " + access.result.message);
                            }
                            else
                            {
                                OnError?.Invoke(this, "Access not granted. No access data received");
                            }
                        }
                        break;
                    }
                }
                else
                {
                    // received the subscription data
                    var data = JsonConvert.DeserializeObject(e.Message, typeof(Cortex.Response.StreamData)) as Cortex.Response.StreamData;
                    try
                    {
                        Dictionary <string, Dictionary <string, object> > ret = ProcessToStringValue(data);
                        OnStreamDataReceived?.Invoke(null, ret);
                    }
                    catch (Exception exc)
                    {
                        OnError?.Invoke(this, exc.Message);
                    }
                }

                //var response = JsonUtility.FromJson<Cortex.Response.General>(reply);

                lastMessageReceived = e.Message;
                messageReceiveEvent.Set();
            }
            catch (Exception exc)
            {
                OnError?.Invoke(this, exc.Message);
            }
        }
示例#42
0
        // Handle receieved message
        private void WebSocketClient_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            m_CurrentMessage = e.Message;
            m_MessageReceiveEvent.Set();
            //Console.WriteLine("Received: " + e.Message);

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

            //var name = response["com"];
            //Console.WriteLine(name);

            if (response["id"] != null)
            {
                Console.WriteLine("id");
                int    id     = (int)response["id"];
                string method = _methodForRequestId[id];
                _methodForRequestId.Remove(id);

                if (response["error"] != null)
                {
                    JObject error        = (JObject)response["error"];
                    int     code         = (int)error["code"];
                    string  messageError = (string)error["message"];
                    Console.WriteLine("Received: " + messageError);
                    //Send Error message event
                    OnErrorMsgReceived(this, new ErrorMsgEventArgs(code, messageError));
                }
                else
                {
                    // handle response
                    JToken data = response["result"];
                    HandleResponse(method, data);
                }
            }
            else if (response["sid"] != null)
            {
                string sid  = (string)response["sid"];
                double time = 0;
                if (response["time"] != null)
                {
                    time = (double)response["time"];
                }

                foreach (JProperty property in response.Properties())
                {
                    //Console.WriteLine(property.Name + " - " + property.Value);
                    if (property.Name != "sid" &&
                        property.Name != "time")
                    {
                        OnStreamDataReceived(this, new StreamDataEventArgs(sid, (JArray)property.Value, time, property.Name));
                        Console.WriteLine(property.Value[0].ToString());
                    }
                }
            }
            else if (response["warning"] != null)
            {
                JObject warning        = (JObject)response["warning"];
                string  messageWarning = "";
                int     code           = -1;
                if (warning["code"] != null)
                {
                    code = (int)warning["code"];
                }
                if (warning["message"].Type == JTokenType.String)
                {
                    messageWarning = warning["message"].ToString();
                }
                else if (warning["message"].Type == JTokenType.Object)
                {
                    Console.WriteLine("Received Warning Object");
                }
                HandleWarning(code, messageWarning);
            }
        }
示例#43
0
        public static MessageReceivedEventArgs GetArgs(string json)
        {
            MessageReceivedEventArgs args = new MessageReceivedEventArgs(json);

            return(args);
        }
示例#44
0
 private static void onMessage(object sender, MessageReceivedEventArgs e)
 {
     onWSSMessage(sender, e);
 }
示例#45
0
        public bool HandleMessage(MessageReceivedEventArgs e)
        {
            object Obj;
            JsonObject Message;

            if (SimpleJson.SimpleJson.TryDeserializeObject(e.Message, out Obj))
                Message = (JsonObject)Obj;
            else
                return false;

            if (!Message.ContainsKey("type"))
                return false;

            int p_id = 0;
            int c_id = 0;
            int l_id = 0;

            if (Message.ContainsKey("player_id"))
                p_id = Convert.ToInt32(Message["player_id"]);
            if (Message.ContainsKey("character_id"))
                c_id = Convert.ToInt32(Message["character_id"]);
            if (Message.ContainsKey("location_id"))
                l_id = Convert.ToInt32(Message["location_id"]);

            switch (Message["type"].ToString())
            {
                case "text": //HANDLED
                    AddLogEntry(Message["text"].ToString());
                    return true;
                case "character": //HANDLED
                    AddLogEntry(Character.GetCharacter(c_id).Name + ": " + Message["text"].ToString());
                    return true;
                case "move": //HANDLED
                    UpdatePlayerLocation(Players[p_id], l_id);
                    AddLogEntry(Players[p_id].Name + " moved to " + Places.AllPlaces[l_id].Name);
                    return true;
                case "next": //HANDLED
                    CurrentPlayer = p_id;
                    try
                    {
                        AddLogEntry("It is " + Players[p_id].Name + "'s turn");
                    }
                    catch {	}
                    return true;
                case "question": //HANDLED
                    JsonArray optionsBuf = (JsonArray)Message["options"];
                    string[] options = new string[optionsBuf.Count];
                    AddLogEntry(Players[p_id].Name + " has to decide on the following: " +  Message["question"].ToString() +" These options are available for selection:");
                    for (int i = 0; i < optionsBuf.Count; i++)
                    {
                        options[i] = optionsBuf[i].ToString();
                        AddLogEntry(options[i]);
                    }
                    if (Array.Exists(Connection.ClientIDs, entry => entry == p_id))
                    {
                        ActingOptionMenu = new ActingOptionMenu(p_id, c_id, Message["question"].ToString(), options, SendResponse);
                        InitControlGroup(ActingOptionMenu);
                        ActingOptionMenu.Visible = true;
                    }
                    return true;
                case "change_cards": //HANDLED // TODO: Replace Keys
                    Resources ResourcesBUF = new Resources(
                        Convert.ToInt32(Message["res1"]),
                        Convert.ToInt32(Message["res2"]),
                        Convert.ToInt32(Message["res3"]),
                        Convert.ToInt32(Message["res4"]));
                    Players[p_id].Resources += ResourcesBUF;
                    AddLogEntry(Players[p_id].Name + " " + ResourcesBUF.ToString());
                    return true;
                case "item_gained": //HANDLED
                    Players[p_id].AddItem(new Item(Message["item_name"].ToString()));
                    AddLogEntry(Players[p_id].Name + " gained " + Message["item_name"].ToString());
                    return true;
                case "item_lost": //HANDLED
                    Players[p_id].DeleteItem(new Item(Message["item_name"].ToString()));
                    AddLogEntry(Players[p_id].Name + " lost " + Message["item_name"].ToString());
                    return true;
                case "win":
                    AddLogEntry(Players[p_id].Name + " won.");
                    return true;
                default:
                    return false;
            }
        }
示例#46
0
 private void NotificationsOnClientMessageReceived(object sender, MessageReceivedEventArgs e)
 {
     Execute(MessageTarget.Client, e);
 }
        private void LogoutRequestReceived(MessageReceivedEventArgs ev)
        {
            var message = (LogoutMessage)ev.Message;

            this.Disconnect(message.NetworkID);
        }
示例#48
0
        private void OnClientMessageReceived(object sender, MessageReceivedEventArgs e)
        {
            switch (e.Tag)
            {
            case (ushort)Tags.Tag.SET_NAME:

                // new player registering

                using (Message message = e.GetMessage()) {
                    using (DarkRiftReader reader = message.GetReader()) {
                        string name = reader.ReadString();
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Dimelo, " + name);
                        Console.ForegroundColor = ConsoleColor.White;

                        PlayerModel newPlayer = new PlayerModel(e.Client, name);

                        if (pendingPlayer == null)
                        {
                            // new player is pending for a match
                            pendingPlayer = newPlayer;
                        }
                        else
                        {
                            // there is already a pending player. lets start a new match

                            MatchModel match = new MatchModel(pendingPlayer, newPlayer);
                            matches.Add(match.id, match);

                            // report clients of the new match
                            using (DarkRiftWriter writer = DarkRiftWriter.Create()) {
                                writer.Write(match.id);
                                writer.Write(match.CurrentPlayerClientID);
                                using (Message msg = Message.Create((ushort)Tags.Tag.GOT_MATCH, writer)) {
                                    pendingPlayer.Client.SendMessage(msg, SendMode.Reliable);
                                    newPlayer.Client.SendMessage(msg, SendMode.Reliable);
                                }
                            }

                            pendingPlayer = null;
                        }
                    }
                }
                break;

            case (ushort)Tags.Tag.SLATE_TAKEN:

                using (Message message = e.GetMessage()) {
                    using (DarkRiftReader reader = message.GetReader()) {
                        ushort matchId    = reader.ReadUInt16();
                        ushort slateIndex = reader.ReadUInt16();

                        if (matches.ContainsKey(matchId))
                        {
                            MatchModel match = matches[matchId];
                            match.PlayerTakesSlate(slateIndex, e.Client);
                            if (match.MatchOver)
                            {
                                // match is over
                                Console.WriteLine($"match over. had: {matches.Count} matches");
                                matches.Remove(matchId);
                                Console.WriteLine($"match over. now have: {matches.Count} matches");
                            }
                        }
                    }
                }

                break;
            }
        }
        private void Server_MessageReceived(object sender, MessageReceivedEventArgs ev)
        {
            var msg = (ClientMessage)ev.Message;

            switch(msg.MessageType)
            {
                case ClientMessageType.Connect:
                case ClientMessageType.Disconnect:
                case ClientMessageType.Login:
                    lock(this.loginqueue)
                    {
                        this.loginqueue.Enqueue (ev);
                        this.loginresetevent.Set ();
                    }
                    break;
                case ClientMessageType.ClientMovementMessage:
                    lock(this.movequeue)
                    {
                        this.movequeue.Enqueue (ev);
                        this.moveresetevent.Set ();
                    }
                    break;
                default:
                    lock(this.miscqueue)
                    {
                        this.miscqueue.Enqueue (ev);
                        this.miscresetevent.Set ();
                    }
                    break;
            }
        }
示例#50
0
 protected override void onMessageReceived(MessageReceivedEventArgs args)
 {
     //
     base.onMessageReceived(args);
 }
示例#51
0
 public void HandleMessageWrapper(MessageReceivedEventArgs e)
 {
     try
     {
         Action DOIT = () => HandleMessage(e);
         if (InvokeRequired)
             Invoke(DOIT);
         else
             HandleMessage(e);
     }
     catch (KeyNotFoundException)
     {
         if (!e.Message.Contains("game_created") && !e.Message.Contains("next") && !e.Message.Contains("registered") && !e.Message.Contains("card"))
             MessageBox.Show("Bad Message: "+e.Message); // TODO: Destroy Debug (Messaging)
     }
 }
示例#52
0
        /// <summary>
        /// This event handles incoming messages from communication channel.
        /// </summary>
        /// <param name="sender">Communication channel that received message</param>
        /// <param name="e">Event arguments</param>
        private void CommunicationChannel_MessageReceived(ICommunicationChannel sender, MessageReceivedEventArgs e)
        {
            LastIncomingMessageTime = DateTime.Now;

            if ((e.Message.MessageTypeId == MDSMessageFactory.MessageTypeIdMDSControllerMessage) && (!string.IsNullOrEmpty(e.Message.RepliedMessageId)))
            {
                //Find and send signal/pulse to waiting thread for this message
                WaitingMessage waitingMessage = null;
                lock (_waitingMessages)
                {
                    if (_waitingMessages.ContainsKey(e.Message.RepliedMessageId))
                    {
                        waitingMessage = _waitingMessages[e.Message.RepliedMessageId];
                    }
                }

                if (waitingMessage != null)
                {
                    waitingMessage.ResponseMessage = e.Message as MDSControllerMessage;
                    waitingMessage.WaitEvent.Set();
                    return;
                }
            }

            //Add message to queue to process in a seperated thread
            _incomingMessageQueue.Add(e.Message);
        }
示例#53
0
        /// <summary>
        /// Handle message received return from Emotiv Cortex Service
        /// </summary>
        private void WebSocketClient_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            string receievedMsg = e.Message;

            UnityEngine.Debug.Log("WebSocketClient_MessageReceived " + receievedMsg);

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

            if (response["id"] != null)
            {
                string method = ""; // method name
                lock (_locker)
                {
                    int id = (int)response["id"];
                    method = _methodForRequestId[id];
                    _methodForRequestId.Remove(id);
                }


                if (response["error"] != null)
                {
                    JObject error        = (JObject)response["error"];
                    int     code         = (int)error["code"];
                    string  messageError = (string)error["message"];
                    UnityEngine.Debug.Log("Received: " + messageError);
                    //Send Error message event
                    ErrorMsgReceived(this, new ErrorMsgEventArgs(code, messageError, method));
                }
                else
                {
                    // handle response
                    JToken data = response["result"];
                    HandleResponse(method, data);
                }
            }
            else if (response["sid"] != null)
            {
                string sid  = (string)response["sid"];
                double time = 0;
                if (response["time"] != null)
                {
                    time = (double)response["time"];
                }

                foreach (JProperty property in response.Properties())
                {
                    if (property.Name != "sid" && property.Name != "time")
                    {
                        ArrayList data = new ArrayList();
                        data.Add(time); // insert timestamp to datastream
                        // spread to one array intead of a array included in a array
                        foreach (var ele in property.Value)
                        {
                            if (ele.Type == JTokenType.Array)
                            {
                                foreach (var item in ele)
                                {
                                    data.Add(Convert.ToDouble(item));
                                }
                            }
                            else if (ele.Type == JTokenType.String)
                            {
                                data.Add(Convert.ToString(ele));
                            }
                            else if (ele.Type == JTokenType.Boolean)
                            {
                                data.Add(Convert.ToBoolean(ele));
                            }
                            else if (ele.Type == JTokenType.Null)
                            {
                                data.Add(-1); // use -1 for null value
                            }
                            else
                            {
                                data.Add(Convert.ToDouble(ele));
                            }
                        }
                        // UnityEngine.Debug.Log("WebSocketClient_MessageReceived: name " + property.Name + " count " + data.Count);
                        StreamDataReceived(this, new StreamDataEventArgs(sid, data, property.Name));
                    }
                }
            }
            else if (response["warning"] != null)
            {
                JObject warning = (JObject)response["warning"];
                int     code    = -1;
                if (warning["code"] != null)
                {
                    code = (int)warning["code"];
                }
                JToken messageData = warning["message"];
                HandleWarning(code, messageData);
            }
        }
示例#54
0
        private void OnDiscoveryMessageReceived(ITestDiscoveryEventsHandler2 discoveryEventsHandler, MessageReceivedEventArgs args)
        {
            try
            {
                var rawMessage = args.Data;

                // Currently each of the operations are not separate tasks since they should not each take much time. This is just a notification.
                if (EqtTrace.IsInfoEnabled)
                {
                    EqtTrace.Info("TestRequestSender: Received message: {0}", rawMessage);
                }

                // Send raw message first to unblock handlers waiting to send message to IDEs
                discoveryEventsHandler.HandleRawMessage(rawMessage);

                var data = this.dataSerializer.DeserializeMessage(rawMessage);
                switch (data.MessageType)
                {
                case MessageType.TestCasesFound:
                    var testCases = this.dataSerializer.DeserializePayload <IEnumerable <TestCase> >(data);
                    discoveryEventsHandler.HandleDiscoveredTests(testCases);
                    break;

                case MessageType.DiscoveryComplete:
                    var discoveryCompletePayload =
                        this.dataSerializer.DeserializePayload <DiscoveryCompletePayload>(data);
                    var discoveryCompleteEventArgs = new DiscoveryCompleteEventArgs(discoveryCompletePayload.TotalTests, discoveryCompletePayload.IsAborted);
                    discoveryCompleteEventArgs.Metrics = discoveryCompletePayload.Metrics;
                    discoveryEventsHandler.HandleDiscoveryComplete(
                        discoveryCompleteEventArgs,
                        discoveryCompletePayload.LastDiscoveredTests);
                    this.SetOperationComplete();
                    break;

                case MessageType.TestMessage:
                    var testMessagePayload = this.dataSerializer.DeserializePayload <TestMessagePayload>(
                        data);
                    discoveryEventsHandler.HandleLogMessage(
                        testMessagePayload.MessageLevel,
                        testMessagePayload.Message);
                    break;
                }
            }
            catch (Exception ex)
            {
                this.OnDiscoveryAbort(discoveryEventsHandler, ex, false);
            }
        }
示例#55
0
 public void Game_MessageReceived(object sender, MessageReceivedEventArgs ev)
 {
     if(ev.Message is ServerMovementMessage)
     {
         this.Message_ServerMovementMessage((ServerMovementMessage)ev.Message);
     }
     else if (ev.Message is PlayerUpdateMessage)
     {
         this.Message_PlayerUpdateReceived((PlayerUpdateMessage)ev.Message);
     }
     else if(ev.Message is PlayerInfoMessage)
     {
         this.Message_PlayerInfoReceived((PlayerInfoMessage)ev.Message);
     }
     else if(ev.Message is ServerEventMessage)
     {
         this.Message_ServerEventReceived ((ServerEventMessage) ev.Message);
     }
 }
示例#56
0
        public void WebSocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            JsonTextParser       parser   = new JsonTextParser();
            JsonObjectCollection jsonData = (JsonObjectCollection)parser.Parse(e.Message);

            if (((JsonNumericValue)jsonData["ok"]).Value == 1)
            {
                //子窗口相关
                if (this.SubForm != null)
                {
                    if (this.SubForm is OrderDayReportForm && ((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_REPORT_DAY))
                    {
                        ((OrderDayReportForm)this.SubForm).ShowData(e.Message); //订单日报表
                    }
                    else if (this.SubForm is OrderMonthReportForm && ((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_REPORT_MONTH))
                    {
                        ((OrderMonthReportForm)this.SubForm).ShowData(e.Message); //订单月报表
                    }
                    else if (this.SubForm is ClientForm && ((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_CLIENT_LIST))
                    {
                        ((ClientForm)this.SubForm).ShowData(e.Message); //客户端管理
                    }
                    else if (this.SubForm is MenuClassForm && ((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_MENU_CLASS))
                    {
                        ((MenuClassForm)this.SubForm).ShowData(e.Message); //菜单分类
                    }
                    else if (this.SubForm is MenuForm && ((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_MENU_CLASS))
                    {
                        ((MenuForm)this.SubForm).ShowData(e.Message); //菜单列表的分类部分
                    }
                    else if (this.SubForm is MenuForm && ((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_MENU))
                    {
                        ((MenuForm)this.SubForm).ShowData(e.Message); //菜单列表的数据部分
                    }
                    else if (this.SubForm is MenuForm && ((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_BIG_IMAGE))
                    {
                        if (((MenuForm)this.SubForm).SubForm != null && ((MenuAddForm)((MenuForm)this.SubForm).SubForm).SubForm != null)
                        {
                            ((MenuBigImgViewForm)((MenuAddForm)((MenuForm)this.SubForm).SubForm).SubForm).ShowData(e.Message); //菜单显示图片
                        }
                    }
                    else if (this.SubForm is MenuForm && ((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_SELECTED_MENU_CLASS))
                    {
                        ((MenuForm)this.SubForm).MenuClassListSelectedWithID((int)((JsonNumericValue)jsonData["data"]).Value); //添加修改删除菜单数据后更新菜单数据列表
                    }
                }

                if (((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_TOMAIN) || ((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_GET_ONLINE_LIST))
                {
                    {
                        //发送获取在线列表的请求
                        jsonData = new JsonObjectCollection();
                        jsonData.Add(new JsonStringValue("cmd", AppConfig.SERV_ONLINE_LIST));
                        ConnHelper.SendString(jsonData.ToString());
                    }

                    {
                        //获取下单明细列表
                        jsonData = new JsonObjectCollection();
                        jsonData.Add(new JsonStringValue("cmd", AppConfig.SERV_ORDER_DETAIL));
                        ConnHelper.SendString(jsonData.ToString());
                    }
                }
                else if (((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_ONLINE_LIST))
                {
                    //显示在线列表

                    this.InformationDeskIndices = new List <int>();
                    this.ClientOrderStatusList  = new Dictionary <int, int>();
                    this.ClientStatusList       = new Dictionary <int, int>();
                    this.ClientNameList         = new Dictionary <int, string>();
                    this.OnlineList.Items.Clear();

                    JsonArrayCollection data = (JsonArrayCollection)jsonData["data"];
                    for (int i = 0; i < data.Count; i++)
                    {
                        JsonObjectCollection itemData = (JsonObjectCollection)data[i];

                        if (((JsonNumericValue)itemData["is_admin"]).Value == 1)
                        {
                            //服务台
                            ListViewItem item = new ListViewItem(new string[] { "", ((JsonStringValue)itemData["name"]).Value, ((JsonStringValue)itemData["ip"]).Value, Strings.MainFormInformationDeskName, Strings.MainFormInformationDeskStatus });
                            this.OnlineList.Items.Add(item);

                            this.InformationDeskIndices.Add(i);
                        }
                        else
                        {
                            //一般
                            string status = Strings.MainFormClientStatus;

                            if (itemData["o_status"].GetValue() != null)
                            {
                                float totalPrice = 0.0f;
                                if (itemData["total_price"].GetValue() != null)
                                {
                                    totalPrice = (float)((JsonNumericValue)itemData["total_price"]).Value;
                                }

                                if (((JsonNumericValue)itemData["o_status"]).Value == 0)
                                {
                                    status = string.Format(Strings.MainFormClientStatus0, totalPrice.ToString("f1"));
                                }
                                else if (((JsonNumericValue)itemData["o_status"]).Value == 1)
                                {
                                    status = string.Format(Strings.MainFormClientStatus1, totalPrice.ToString("f1"));
                                }

                                this.ClientOrderStatusList.Add(i, (int)((JsonNumericValue)itemData["o_status"]).Value);
                            }

                            this.ClientNameList.Add(i, ((JsonStringValue)itemData["name"]).Value);
                            this.ClientStatusList.Add(i, (int)((JsonNumericValue)itemData["status"]).Value);

                            ListViewItem item = new ListViewItem(new string[] { "", ((JsonStringValue)itemData["name"]).Value, ((JsonStringValue)itemData["ip"]).Value, Strings.MainFormClientClassName, status });
                            this.OnlineList.Items.Add(item);
                        }
                    }

                    if (this.ClientListSelectedIndex > -1)
                    {
                        this.OnlineList.Items[this.ClientListSelectedIndex].Selected = true;
                    }
                }
                else if (((JsonStringValue)jsonData["cmd"]).Value.Equals(AppConfig.CLIENT_WANT_ORDER_DETAIL))
                {
                    //下单明细列表

                    this.OrderDetailIDList     = new List <int>();
                    this.OrderDetailStatusList = new List <int>();
                    this.OrderDetailNameList   = new List <string>();

                    this.OrderDetailList.Items.Clear();
                    JsonArrayCollection data = (JsonArrayCollection)jsonData["data"];

                    for (int i = 0; i < data.Count; i++)
                    {
                        JsonObjectCollection itemData = (JsonObjectCollection)data[i];

                        string status = Strings.MainFormOrderDetailStatus0;
                        if ((int)((JsonNumericValue)itemData["status"]).Value == 1)
                        {
                            status = Strings.MainFormOrderDetailStatus1;
                        }

                        this.OrderDetailIDList.Add((int)((JsonNumericValue)itemData["id"]).Value);
                        this.OrderDetailStatusList.Add((int)((JsonNumericValue)itemData["status"]).Value);
                        this.OrderDetailNameList.Add(((JsonStringValue)itemData["menu_name"]).Value);

                        ListViewItem item = new ListViewItem(new string[] { "", ((JsonStringValue)itemData["c_name"]).Value, ((JsonStringValue)itemData["menu_name"]).Value, ((float)((JsonNumericValue)itemData["price"]).Value).ToString("f1"), ((int)((JsonNumericValue)itemData["quantity"]).Value).ToString(), Commons.UnixTimeFrom((long)((JsonNumericValue)itemData["add_time"]).Value).ToString("HH:mm:ss"), status });
                        this.OrderDetailList.Items.Add(item);
                    }

                    if (this.OrderDetailListSelectedIndex > -1)
                    {
                        this.OrderDetailList.Items[this.OrderDetailListSelectedIndex].Selected = true;
                    }
                }
            }
            else
            {
                MessageBox.Show(((JsonStringValue)jsonData["message"]).Value);
            }
        }
示例#57
0
        //private void _OnMessageReceived(OscarSession sess, UserInfo userInfo, string message, Encoding encoding, MessageFlags msgFlags)
        private void _OnMessageReceived(object sender, MessageReceivedEventArgs e)
        {
            ChatModel chat = GetChat(e.Message.ScreenName, ChatType.Person);
            if (chat == null) {
                PersonModel person = new PersonModel(e.Message.ScreenName,
                                                     e.Message.ScreenName,
                                                     NetworkID,
                                                     Protocol,
                                                     this);
                chat = new PersonChatModel(person,
                                           e.Message.ScreenName,
                                           e.Message.ScreenName,
                                           this);
                Session.AddChat(chat);
                Session.SyncChat(chat);
            }

            MessageModel msg = new MessageModel();
            TextMessagePartModel textMsg;

            textMsg = new TextMessagePartModel();
            textMsg.Text = String.Format("<{0}> ", e.Message.ScreenName);
            textMsg.IsHighlight = true;
            msg.MessageParts.Add(textMsg);

            textMsg = new TextMessagePartModel();
            textMsg.Text = e.Message.Message;
            msg.MessageParts.Add(textMsg);

            Session.AddMessageToChat(chat, msg);
        }
 protected virtual void HandleMessageReceived(MessageReceivedEventArgs e)
 {
 }
示例#59
0
        private void FireOnMessageReceived(MessageReceivedEventArgs m)
        {
            Log("EVENT Receive:" + m.Header.CommandID);

            if (OnMessageReceived != null)
            {
                if (_synchContext == null)
                {
                    OnMessageReceived(this, m);
                }
                else
                {
                    _synchContext.BeginInvoke(new EventHandler<MessageReceivedEventArgs>(OnMessageReceived), this, m);
                }
            }
        }
示例#60
0
 static void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
 {
     Console.WriteLine("Received : " + e.Message);
 }