public Emitter Emit(string eventString, IAck ack, params object[] args)
        {
            var log = LogManager.GetLogger(Global.CallerName());

            if (Events.Contains(eventString))
            {
                base.Emit(eventString, args);
                return(this);
            }

            var _args = new List <object> {
                eventString
            };

            _args.AddRange(args);

            var jsonArgs = Parser.Packet.Args2JArray(_args);

            var parserType = HasBinaryData.HasBinary(jsonArgs) ? Parser.Parser.BINARY_EVENT : Parser.Parser.EVENT;
            var packet     = new Packet(parserType, jsonArgs);

            log.Info(string.Format("emitting packet with ack id {0}", Ids));
            Acks      = Acks.Add(Ids, ack);
            packet.Id = Ids++;

            if (Connected)
            {
                Packet(packet);
            }
            else
            {
                SendBuffer = SendBuffer.Enqueue(packet);
            }
            return(this);
        }
Esempio n. 2
0
        public override Emitter Emit(string eventString, params object[] arg)
        {
            var log = LogManager.GetLogger(Global.CallerName());

            if (Events.Contains(eventString))
            {
                base.Emit(eventString, arg);
                return(this);
            }

            var args = new List <object> {
                eventString
            };

            args.AddRange(arg);

            var ack = args[args.Count - 1] as IAck;

            if (ack != null)
            {
                args.RemoveAt(args.Count - 1);
            }

            var jsonArgs = Parser.Packet.Args2JArray(args);

            var parserType = HasBinaryData.HasBinary(jsonArgs) ? Parser.Parser.BINARY_EVENT : Parser.Parser.EVENT;
            var packet     = new Packet(parserType, jsonArgs);

            if (ack != null)
            {
                log.Info($"emitting packet with ack id {_ids}");

                lock (_lockObj)
                {
                    _acks = _acks.Add(_ids, ack);
                }

                packet.Id = _ids++;
            }

            if (_connected)
            {
                Packet(packet);
            }
            else
            {
                _sendBuffer = _sendBuffer.Enqueue(packet);
            }

            return(this);
        }
Esempio n. 3
0
            public void Call(params object[] args)
            {
                if (this.sent[0])
                {
                    return;
                }
                this.sent[0] = true;
                LogManager logger = LogManager.GetLogger(Global.CallerName("", 0, ""));
                JArray     jarray = Packet.Args2JArray((IEnumerable <object>)args);

                logger.Info(string.Format("sending ack {0}", args.Length != 0 ? (object)jarray.ToString() : (object)"null"));
                this.socket.Packet_method(new Packet(HasBinaryData.HasBinary((object)args) ? 6 : 3, (object)jarray)
                {
                    Id = this.Id
                });
            }
Esempio n. 4
0
        public override Emitter Emit(string eventString, params object[] args)
        {
            var log = LogManager.GetLogger(Global.CallerName());

            if (Events.Contains(eventString))
            {
                base.Emit(eventString, args);
                return(this);
            }

            var _args = new List <object> {
                eventString
            };

            _args.AddRange(args);

            var ack = _args[_args.Count - 1] as IAck;

            if (ack != null)
            {
                _args.RemoveAt(_args.Count - 1);
            }

            var jsonArgs = Newtonsoft.Json.JsonConvert.SerializeObject(_args);

            var parserType = HasBinaryData.HasBinary(jsonArgs) ? Parser.Parser.BINARY_EVENT : Parser.Parser.EVENT;
            var packet     = new Packet(parserType, jsonArgs);

            if (ack != null)
            {
                log.Info(string.Format("emitting packet with ack id {0}", Ids));
                Acks      = Acks.Add(Ids, ack);
                packet.Id = Ids++;
            }

            if (Connected)
            {
                Packet(packet);
            }
            else
            {
                SendBuffer = SendBuffer.Enqueue(packet);
            }
            return(this);
        }
            public void Call(params object[] args)
            {
                if (sent[0])
                {
                    return;
                }
                sent[0] = true;
                var log      = LogManager.GetLogger(Global.CallerName());
                var jsonArgs = Parser.Packet.Args2JArray(args);

                log.Info(string.Format("sending ack {0}", args.Length != 0 ? jsonArgs.ToString() : "null"));

                var parserType = HasBinaryData.HasBinary(args) ? Parser.Parser.BINARY_ACK : Parser.Parser.ACK;
                var packet     = new Packet(parserType, jsonArgs);

                packet.Id = Id;
                socket.Packet(packet);
            }
        public override Emitter Emit(string eventString, params object[] args)
        {
            var log = LogManager.GetLogger(Global.CallerName());

            if (Events.Contains(eventString))
            {
                base.Emit(eventString, args);
                return(this);
            }

            var _args = new List <object> {
                eventString
            };

            _args.AddRange(args);

            var jsonArgs = Parser.Packet.Args2JArray(_args);

            var parserType = HasBinaryData.HasBinary(jsonArgs) ? Parser.Parser.BINARY_EVENT : Parser.Parser.EVENT;
            var packet     = new Packet(parserType, jsonArgs);

            var lastArg = _args[_args.Count - 1];

            if (lastArg is IAck)
            {
                log.Info(string.Format("emitting packet with ack id {0}", Ids));
                Acks.TryAdd(Ids, (IAck)lastArg);
                jsonArgs    = Parser.Packet.Remove(jsonArgs, jsonArgs.Count - 1);
                packet.Data = jsonArgs;
                packet.Id   = Ids++;
            }

            if (Connected)
            {
                Packet(packet);
            }
            else
            {
                SendBuffer.Enqueue(packet);
            }
            return(this);
        }
Esempio n. 7
0
        public override Emitter Emit(string eventString, params object[] args)
        {
            LogManager logger = LogManager.GetLogger(Global.CallerName("", 0, ""));

            if (QSocket.Events.Contains(eventString))
            {
                base.Emit(eventString, args);
                return((Emitter)this);
            }

            List <object> objectList = new List <object>()
            {
                (object)eventString
            };

            objectList.AddRange((IEnumerable <object>)args);
            JArray a      = Packet.Args2JArray((IEnumerable <object>)objectList);
            Packet packet = new Packet(HasBinaryData.HasBinary((object)a) ? 5 : 2, (object)a);
            object obj    = objectList[objectList.Count - 1];

            if (obj is IAck)
            {
                logger.Info(string.Format("emitting packet with ack id {0}", (object)this.Ids));
                this.Acks = this.Acks.Add(this.Ids, (IAck)obj);
                JArray jarray = Packet.Remove(a, a.Count - 1);
                packet.Data = (object)jarray;
                packet.Id   = this.Ids++;
            }

            if (this.Connected)
            {
                this.Packet_method(packet);
            }
            else
            {
                this.SendBuffer = this.SendBuffer.Enqueue(packet);
            }
            return((Emitter)this);
        }
Esempio n. 8
0
 public void ByteArray()
 {
     Assert.IsTrue(HasBinaryData.HasBinary(new byte[0]));
 }