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(); } }
/// <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); }