public void Emit(JToken Event, params object[] Arguments)
        {
            if (Event != null)
            {
                JArray            JsonArray = new JArray();
                Action <JToken[]> AckAction = null;
                int ArgumentsCount          = Arguments.Length;

                if (ArgumentsCount > 0 && Arguments[Arguments.Length - 1] != null && Arguments[Arguments.Length - 1] is Action <JToken[]> )
                {
                    ArgumentsCount--;
                    AckAction = (Action <JToken[]>)Arguments[Arguments.Length - 1];
                }

                JsonArray.Add(Event);
                for (int i = 0; i < ArgumentsCount; i++)
                {
                    JToken Data;

                    try { Data = JToken.FromObject(Arguments[i]); }
                    catch { Data = JValue.CreateNull(); }

                    JsonArray.Add(Data);
                }

                this.Emit(SocketIOPacket.Factory.CreateEventPacket(JsonArray, AckManager.CreateAck(AckAction), JsonOnly));
            }
        }
示例#2
0
        public TChildClass Emit(JToken Event, params object[] Arguments)
        {
            if (Event != null)
            {
                JArray            JsonArray = new JArray();
                Action <JToken[]> Callback  = null;
                int ArgumentsCount          = Arguments.Length;

                if (ArgumentsCount > 0 && Arguments[Arguments.Length - 1] is Action <JToken[]> )
                {
                    ArgumentsCount--;
                    Callback = (Action <JToken[]>)Arguments[Arguments.Length - 1];
                }

                JsonArray.Add(Event);

                for (int i = 0; i < ArgumentsCount; i++)
                {
                    JToken Data;

                    try { Data = JToken.FromObject(Arguments[i]); }
                    catch { Data = JValue.CreateNull(); }

                    JsonArray.Add(Data);
                }

                Emit(SocketIOPacket.CreateEventPacket(JsonArray, AckManager.CreateAck(Callback)));
            }

            return(this as TChildClass);
        }