예제 #1
0
        public void Init(string url, JSocketConfig config = null, Action <object, MessageEventArgs> onMessage = null)
        {
            if (config == null)
            {
                config = JSocketConfig.Default();
            }

            if (onMessage == null)
            {
                OnMessage = _OnMessage;
            }
            else
            {
                OnMessage = (sender, e) => onMessage(sender, e);
            }

            this.url    = url;
            this.config = config;

            encoder  = new Encoder();
            decoder  = new Decoder();
            parser   = new Parser();
            handlers = new Dictionary <string, List <Action <SocketIOEvent> > >();
            ackList  = new List <Ack>();
            sid      = null;
            packetId = 0;

            eventQueueLock = new object();
            eventQueue     = new Queue <SocketIOEvent>();

            ackQueueLock = new object();
            ackQueue     = new Queue <Packet>();

            connected = false;

#if SOCKET_IO_DEBUG
            if (debugMethod == null)
            {
                debugMethod = delegate(string s)
                {
                    if (config.debug)
                    {
                        Log.Print(s);
                    }
                };
            }
#endif

            if (config.autoConnect)
            {
                Connect();
            }
        }
예제 #2
0
        /// <summary>
        /// 连接websokcet服务器,如果使用的socket-io,请给isSocketIO参数设置为true(socketio是nodejs服务器使用的一个websocket插件)
        /// </summary>
        /// <param name="url"></param>
        /// <param name="config"></param>
        /// <param name="isSocketIO"></param>
        public JWebSocket(string url, JSocketConfig config = null, Action <object, MessageEventArgs> OnMessage = null)
        {
            if (mgr == null)
            {
                mgr = new GameObject("JEngine.Net");
                UnityEngine.Object.DontDestroyOnLoad(mgr);
            }

            socket = mgr.AddComponent <SocketIOComponent>();

            socket.Init(url, config, OnMessage);
        }