private PomeloClient createConnect() { PomeloClient connection = new PomeloClient(); connection.on("onTick", msg => { Debug.unityLogger.Log("onTick:" + msg.rawString); }); //listen on network state changed event connection.on(PomeloClient.DisconnectEvent, msg => { //网络错误,诸如已经掉线等等 Debug.unityLogger.Log("Network error, reason: " + msg.jsonObj["reason"]); if (_disconnectCallback != null) { _disconnectCallback(msg); } }); connection.on(PomeloClient.ErrorEvent, msg => { //没网 Debug.unityLogger.Log("Error, reason: " + msg.jsonObj ["reason"]); if (_errorCallback != null) { _errorCallback(msg); } }); return(connection); }
void Start() { chatRecords = new ArrayList(); userList = new ArrayList(); chatWindow = new Rect(0, 0, Screen.width - 150, Screen.height); usersWindow = new Rect(Screen.width - 150, 0, 200, Screen.height); pomelo_label_Style.normal.textColor = Color.red; // ºìÉ«ÏÔʾ InitUserWindow(); pclient.on("onAdd", (data) => { RefreshUserWindow("add", data); }); pclient.on("onLeave", (data) => { RefreshUserWindow("leave", data); }); pclient.on("onChat", (data) => { addMessage(data); }); }
void Start() { chatRecords = new ArrayList(); userList = new ArrayList(); chatWindow = new Rect(0, 0, Screen.width - 150, Screen.height); usersWindow = new Rect(Screen.width - 150, 0, 200, Screen.height); //pomelo_label_Style.normal.textColor = Color.black; Color textColor; ColorUtility.TryParseHtmlString("#18B65AFF", out textColor); pomelo_label_Style.normal.textColor = textColor; InitUserWindow(); pclient.on("onAdd", (data) => { Debug.Log("onAdd message"); RefreshUserWindow("add", data); }); pclient.on("onLeave", (data) => { RefreshUserWindow("leave", data); }); pclient.on("onChat", (data) => { Debug.Log("onChat message"); addMessage(data); }); }
void Start() { Application.runInBackground = true; userlist = new ArrayList(); userGameObject = new ArrayList(); moveRecords = new ArrayList(); // InitUserWindow(); pclient.on("onAdd", (data) => { RefreshUserWindow("add", data); }); pclient.on("onLeave", (data) => { RefreshUserWindow("leave", data); }); //pclient.on("onChat", (data) => //{ // addMessage(data); //}); pclient.on("onMove", (data) => { addMoveMessage(data); }); }
//需要手动调用添加服务器push给客户端的消息,不同的界面请添加不同的消息回调 public void addPushMsgEventListener(LobbyProtocol pID, Action <Message> action) { System.Object route; if (ROUTE_MAP.TryGetValue("P" + (int)pID, out route)) { _connection.on(route.ToString(), action); } }
void EventsListen() { pc.on("onChannelUserOnline", (data) => { Debug.Log("onChannelUserOnline " + data); }); pc.on("onLeave", (data) => { }); pc.on("onChat", (data) => { }); }
private static void startConnect(string host, int port) { pc = new PomeloClient(host, port); pc.connect(null, delegate(JsonObject data) { pc.on("onChat", msg => Console.WriteLine(msg["from"] + " : " + msg["msg"])); pc.on("onAdd", msg => Console.WriteLine("onAdd : " + msg)); pc.on("onLeave", msg => Console.WriteLine("onLeave : " + msg)); pc.on("disconnect", msg => Console.WriteLine("disconnect : " + msg)); Console.WriteLine("connect to connector " + data.ToString()); login(); }); }
public static bool onAdd(System.Action <onAdd_event> cb) { pc.on("onAdd", delegate(JsonData ret) { onAdd_event result = new onAdd_event(); if (ret.ContainsKey("user")) { result.user = (string)ret["user"]; } cb(result); } ); return(true); }
void Start() { Application.runInBackground = true; /* ----------------------------------------- */ //userList = new ArrayList(); //userList.Add(userName); txtRoomId.text = RoomCon.roomid; // 该房间有一个新的的用户加入了 pclient.on("onCommonUserAddToGame", (data) => { string tmp = data.ToString(); JsonData jdtmp = JsonMapper.ToObject(tmp); string newRid = jdtmp["rid"].ToString(); string uid = jdtmp["uid"].ToString(); // 该房间的人数 if (!userList.Contains(uid)) { userList.Add(uid); } }); // 玩家中途退出了 pclient.on("onDelCommonUserInRoom", (data) => { string tmp = data.ToString(); JsonData jdtmp = JsonMapper.ToObject(tmp); string newRid = jdtmp["rid"].ToString(); string uid = jdtmp["uid"].ToString(); // 该房间的人数 if (userList.Contains(uid)) { userList.Remove(uid); } }); // 添加按钮的事件监听方法 btn.onClick.AddListener(msgSend); pclient.on("onChat", (data) => { addMessage(data); }); }
public void onUpgrade() { pclient.on("onUpgrade", (data) => { Debug.Log("get update info :" + data.ToString()); NotificationManager.getInstance().PostNotification(null, Message.MONEY_GOLD_UPDATE); }); pclient.on("onUpgradeHero", (data) => { Debug.Log("onUpgradeHero :" + data.ToString()); HeroManager.getInstance().updateHeroByServer(data); }); pclient.on("onUpgradeBag", (data) => { Debug.Log("onUpgradeBag :" + data.ToString()); BagManager.getInstance().updateItemByServer(data); BagManager.getInstance().getGameScene().mainPanel.updateData(); }); }
//注册了 广播事件的 处理逻辑 public void registBroadcast(string eventName) { pclient.on(eventName, (data) => { data[CallbackFact.ROUTE_KEY_NAME] = eventName; data[BroadcastFact.IS_EVT_KEY_NAME] = true;//表示它是一个 广播事件, this.msgQueue.Enqueue(data); }); }
/// <summary> /// add event listener, process broadcast message /// </summary> /// <param name="eventName">eg: onReceive</param> /// <param name="action"></param> public void On(string eventName, Action <JsonObject> action) { m_Conn.on(eventName, (result) => { Dispatcher.Current.BeginInvoke(() => { action.Invoke(result); }); }); }
private static void startConnect(string host, int port) { pc = new PomeloClient(host, port); pc.connect(null, delegate(JsonObject data){ pc.on("onChat", delegate(JsonObject msg) { Console.WriteLine("{0} : {1}.", msg["from"], msg["msg"]); }); pc.on("onAdd", delegate(JsonObject msg) { Console.WriteLine("user {0} come in to the room.", msg["user"]); }); pc.on("onLeave", delegate(JsonObject msg) { Console.WriteLine("user {0} leave the room", msg["user"]); }); pc.on("disconnect", delegate(JsonObject msg) { Console.WriteLine("disconnect : " + msg); }); //kick (); login(); }); }
public bool RegRouterListener(string router, CbFunc cb) { if (callbacks.ContainsKey(router)) { return(false); } callbacks.Add(router, cb); client.on(router, (rst) => { cb(rst); }); return(true); }
void OnConnect2(object sender, RoutedEventArgs e) { pc2 = new PomeloClient(host1, port1); pc2.connect(null, delegate(JsonObject data) { this.Dispatcher.BeginInvoke((Action)(() => { this.Status22.Text = "success"; })); Log2("connect success"); }); pc2.on("onChat", delegate(JsonObject msg) { Log2(msg.ToString()); }); pc2.on("onAdd", delegate(JsonObject msg) { Log2(msg.ToString()); }); pc2.on("onLeave", delegate(JsonObject msg) { Log2(msg.ToString()); }); pc2.on("disconnect", delegate(JsonObject msg) { Log2(msg.ToString()); }); }
/// <summary> /// 监听服务器主动对送消息 /// </summary> /// <param name="eventName">Event name.</param> /// <param name="action">Action.</param>0 public void ReceivePushMsg <T>(string eventName, EventDispatcher.EventCallback eventCallback) { if (pclient == null) { Debug.Log("pclient is null"); } Debug.Log("=============ReceivePushMsgReceivePushMsgReceivePushMsg=================="); pclient.on(eventName, delegate(JsonObject resData) { EventDispatcher.Instance().RegistEventListener(eventName, eventCallback); Debug.Log("pushData=" + resData); CommonResult <T> commonResult = AnalysisData <T>(resData); EventDispatcher.Instance().DispatchEvent(eventName, commonResult); }); }
// Use this for initialization void Start() { string host = "128.237.211.68"; int port = 3010; pc = new PomeloClient(host, port); pc.connect(null, (data) => { JsonObject msg = new JsonObject(); msg["uid"] = "hehe"; pc.request("connector.entryHandler.entry", msg, OnQuery); }); pc.on("onChat", (data) => { OnChat(data); }); }
public static void loginTest(string host, int port) { pc = new PomeloClient(host, port); pc.on (PomeloClient.EVENT_DISCONNECT, onDisconnect); pc.connect(null, data=>{ Console.WriteLine("on data back" + data.ToString()); JsonObject msg = new JsonObject(); msg["uid"] = 111; pc.request("gate.gateHandler.queryEntry", msg, OnQuery); }); while(true){ System.Threading.Thread.Sleep(100); }; }
private void button1_Click(object sender, EventArgs e) { this.label3.Text = "开始连接服务器"; string host = this.textBox1.Text.Trim(); int port = int.Parse(this.textBox2.Text.Trim()); _pomeloClient = new PomeloClient(host, port); _pomeloClient.OnConnect += delegate() { Console.WriteLine("OnConnect"); }; _pomeloClient.OnDisconnect += delegate() { Console.WriteLine("OnDisconnect"); }; _pomeloClient.OnException += delegate(string error) { Console.WriteLine("OnException = " + error); }; _pomeloClient.on("testOn", (data) => { Console.WriteLine("On = " + data.ToString()); }); _pomeloClient.connect((data) => { this._logStr = "服务器连接成功,返回json:" + data.ToString() + "\n"; Action del = () => { this.label3.Text = this._logStr; }; this.label3.Invoke(del, null); JsonObject msg = new JsonObject(); msg["uid"] = "wy"; _pomeloClient.request("connector.entryHandler.entry", msg, (ret) => { Console.WriteLine("connector.entryHandler.entry = " + ret.ToString()); }); Console.WriteLine("Connected"); }); }
public static void loginTest(string host, int port) { pc = new PomeloClient(host, port); pc.on(PomeloClient.EVENT_DISCONNECT, onDisconnect); pc.connect(null, data => { Console.WriteLine("on data back" + data.ToString()); JsonObject msg = new JsonObject(); msg["uid"] = 111; pc.request("gate.gateHandler.queryEntry", msg, OnQuery); }); while (true) { System.Threading.Thread.Sleep(100); } ; }
public PomeloSocket InitClient(string host, int port, Action <JsonObject> cb) { Disconnect(); pclient = new PomeloClient(); pclient.NetWorkStateChangedEvent += (state) => { Debug.Log(state); }; pclient.initClient(host, port, () => { Connect(cb); }); pclient.on("websocket-error", (data) => { Debug.LogError(data); }); return(this); }
/// <summary> /// 加入频道 /// </summary> /// <param name="userName"></param> /// <param name="channel"></param> void JoinChannel(string userName, string channel) { JsonObject userMessage = new JsonObject(); userMessage.Add("uid", userName); //userMessage.Add("rid", channel); if (_pomelo != null) { //请求加入聊天室 _pomelo.request("connector.entryHandler.entry", userMessage, (data) => { AppendLog("进入 channel:\n" + FormatJson(data.ToString())); _pomelo.on("onPush", (message) => { AppendLog("onPush:\n" + FormatJson(message.ToString())); }); }); } }
public static void OnQuery(JsonObject result) { if(Convert.ToInt32(result["code"]) == 200){ pc.disconnect(); string host = (string)result["host"]; int port = Convert.ToInt32(result["port"]); pc = new PomeloClient(host, port); pc.connect(null, (data)=>{ Console.WriteLine("on connect to connector!"); pc.on(PomeloClient.EVENT_DISCONNECT, onDisconnect); //Login JsonObject msg = new JsonObject(); msg["username"] = "******"; msg["rid"] = "pomelo"; pc.request("connector.entryHandler.enter", msg, OnEnter); }); } }
public static void OnQuery(JsonObject result) { if (Convert.ToInt32(result["code"]) == 200) { pc.disconnect(); string host = (string)result["host"]; int port = Convert.ToInt32(result["port"]); pc = new PomeloClient(host, port); pc.connect(null, (data) => { JsonObject userMessage = new JsonObject(); Console.WriteLine("on connect to connector!"); pc.on(PomeloClient.EVENT_DISCONNECT, onDisconnect); //Login JsonObject msg = new JsonObject(); msg["username"] = "******"; msg["rid"] = "pomelo"; pc.request("connector.entryHandler.enter", msg, OnEnter); }); } }
void Start() { Application.runInBackground = true; roomList = new ArrayList(); // 找到各个控件 InputField_roomid = GameObject.FindGameObjectWithTag("channel").GetComponent <InputField>(); btn_create = GameObject.FindGameObjectWithTag("btn_create").GetComponent <Button>(); btn_choose = GameObject.FindGameObjectWithTag("btn_choose").GetComponent <Button>(); // 添加按钮的事件监听方法 btn_choose.onClick.AddListener(chooseRoom); btn_create.onClick.AddListener(createRoom); helloName.text = "Hello: " + userName; // 刚进入场景得到的房间列表 string s = roomsObjHave.ToString(); JsonData jd = JsonMapper.ToObject(s); if (jd.Keys.Count >= 1) { int len = jd["rooms"].Count; if (len >= 1) { ICollection <string> it = jd["rooms"].Keys; foreach (string c in it) { // 具体的一个房间的情况 string aobj = jd["rooms"][c].ToJson(); JsonData jdobj = JsonMapper.ToObject(aobj); string createUser = jdobj["createUser"].ToString(); string num = jdobj["number"].ToString(); // 人数 int intnum = int.Parse(num); if (intnum == 0) { if (roomList.Contains(c)) { roomList.Remove(c); } } else { if (hashMap.ContainsKey(c)) { hashMap.Remove(c); hashMap.Add(c, num); } else { hashMap.Add(c, num); } if (!roomList.Contains(c)) { roomList.Add(c); } } } } } // 有新的房间,接收服务器push过来的消息 pclient.on("onAddRoom", (data) => { string tmp = data.ToString(); JsonData jdtmp = JsonMapper.ToObject(tmp); string newRid = jdtmp["rid"].ToString(); string num = jdtmp["num"].ToString(); // 该房间的人数 if (hashMap.ContainsKey(newRid)) { hashMap.Remove(newRid); hashMap.Add(newRid, num); } else { hashMap.Add(newRid, num); } if (!roomList.Contains(newRid)) { roomList.Add(newRid); } }); // 某个房间添加了一个新用户 pclient.on("onAddCommonUser", (data) => { string tmp = data.ToString(); JsonData jdtmp = JsonMapper.ToObject(tmp); string newRid = jdtmp["rid"].ToString(); string num = jdtmp["num"].ToString(); // 该房间的人数 if (hashMap.ContainsKey(newRid)) { hashMap.Remove(newRid); hashMap.Add(newRid, num); } else { hashMap.Add(newRid, num); } if (!roomList.Contains(newRid)) { roomList.Add(newRid); } }); // 某个房间删除了一个普通用户 pclient.on("onDelCommonUser", (data) => { string tmp = data.ToString(); JsonData jdtmp = JsonMapper.ToObject(tmp); string newRid = jdtmp["rid"].ToString(); string num = jdtmp["num"].ToString(); // 该房间的人数 int intnum = int.Parse(num); if (intnum == 0) { if (roomList.Contains(newRid)) { roomList.Remove(newRid); } } else { if (hashMap.ContainsKey(newRid)) { hashMap.Remove(newRid); hashMap.Add(newRid, num); } else { hashMap.Add(newRid, num); } if (!roomList.Contains(newRid)) { roomList.Add(newRid); } } }); }
public ArrayList deleteCards; // 用来存储上一次出过的牌(可以选择不出牌) void Start() { Application.runInBackground = true; ////////////////////////////////////////////////////// index_CardsCnt = new Dictionary <int, int>(); btnStart_Flag = false; GameState = -1; deleteCards = new ArrayList(); lastIndexTextContent = "还未开始"; isFapai = false; userCardNumberGO = null; //玩家的牌GameObject userCardNumber = new ArrayList(); //玩家的牌 hashMap = new Dictionary <int, bool>(); isReadyUidText = ""; isReadyCount = 0; isReadyCnt.text = "Cnt"; msgPrefab = Resources.Load <GameObject>("Prefabs/GameObject_1"); // 添加按钮的事件监听方法 btn_Out.onClick.AddListener(Btn_OutCards); btn_Reset.onClick.AddListener(Btn_ResetCards); btn_start.onClick.AddListener(Btn_StartGame); btn_Pass.onClick.AddListener(Btn_BuChuPai); //mapIndex2.Add(index, userName); //mapIndex.Add(userName, index); if (mapIndex2.ContainsKey(index)) { mapIndex2[index] = userName; } else { mapIndex2.Add(index, userName); } if (mapIndex.ContainsKey(userName)) { mapIndex[userName] = index; } else { mapIndex[userName] = index; } // pomelo消息监听 if (pclient != null) { // 该房间有一个新的的用户加入了 pclient.on("onCommonUserAddToGame", userAdd); // 3个用户都准备好了,开始游戏(发牌,初始数据等等) pclient.on("onStartGame", getPuke); // 有用户点击了准备按钮 pclient.on("onReady", readyPuke); // 某个用户出牌 pclient.on("onChupai", Chupai); // 某个用户选择了不出牌,服务器也推送消息 pclient.on("onBuchupai", BuchupaiUI); // 游戏结束 pclient.on("onOver", gameOverUI); } btnStart_Flag = true; if (index == 3) // 如果自己是最后一个进入的,那么准备按钮初始 就是可点击的 { btnStart_Flag = false; } // 玩家中途退出了,情况有多种情况 ??? //pclient.on("onDelCommonUserInRoom", (data) => //{ // string tmp = data.ToString(); // JsonData jdtmp = JsonMapper.ToObject(tmp); // string newRid = jdtmp["rid"].ToString(); // string uid = jdtmp["uid"].ToString(); //}); }
public void On(string msg, Action <JsonObject> cb) { pclient.on(msg, cb); }
void InitHandler() { NetMgr net = NetMgr.GetInstance(); RoomMgr rm = RoomMgr.GetInstance(); PomeloClient pc = net.pc; pc.on("login_result", data => { Debug.Log("login_result"); object ob; if (!data.TryGetValue("errcode", out ob)) { return; } int ret = Convert.ToInt32(ob); if (ret != 0) { Debug.Log("login_result ret=" + ret); return; } JsonObject room = (JsonObject)data["data"]; rm.updateRoom(room); DispatchEvent("game_reset"); }); pc.on("login_finished", data => { Debug.Log("login_finished"); string table = "04.table3d"; string name = SceneManager.GetActiveScene().name; if (name != table) { mHandlerMap.Clear(); LoadingScene.LoadNewScene(table); } else { if (rm.isPlaying()) { net.send("ready"); } } }); pc.on("exit_result", data => { string reason = (string)data["reason"]; if (reason == "kick") { GameAlert.GetInstance().show("您已被管理员请出房间", () => { GameManager.GetInstance().exit(); }); } else if (reason == "request") { GameManager.GetInstance().exit(); } }); pc.on("exit_notify_push", data => { int uid = Convert.ToInt32(data["value"]); int seatindex = rm.userExit(uid); DispatchEvent("user_state_changed", seatindex); }); pc.on("dispress_push", data => { GameManager.GetInstance().exit(); }); pc.on("new_user_comes_push", data => { int seatindex = rm.newUserCome(data); DispatchEvent("user_state_changed", seatindex); }); pc.on("user_state_push", data => { int seatindex = rm.updateUser(data); DispatchEvent("user_state_changed", seatindex); }); pc.on("game_wait_maima_push", data => { rm.updateMaima(data); DispatchEvent("game_wait_maima"); }); pc.on("game_maima_push", data => { rm.updateMaima(data); DispatchEvent("game_maima"); }); pc.on("user_ready_push", data => { int seatindex = rm.updateUser(data); DispatchEvent("user_state_changed", seatindex); }); pc.on("game_dice_push", data => { rm.updateState(data); DispatchEvent("game_dice"); }); pc.on("game_holds_push", data => { Debug.Log("get game_holds_push"); int si = rm.updateSeat(data); DispatchEvent("game_holds", si); }); pc.on("game_holds_len_push", data => { Debug.Log("get game_holds_len_push"); int si = rm.updateSeat(data); DispatchEvent("game_holds_len", si); }); pc.on("game_state_push", data => { rm.updateState(data); DispatchEvent("game_state"); }); pc.on("game_begin_push", data => { Debug.Log("get game_begin_push"); rm.newRound(); rm.updateState(data); foreach (PlayerInfo p in rm.players) { p.ready = false; DispatchEvent("user_state_changed", p.seatindex); } DispatchEvent("game_begin"); }); pc.on("game_playing_push", data => { Debug.Log("get game_playing_push"); rm.updateState(data); DispatchEvent("game_playing"); }); pc.on("game_sync_push", data => { Debug.Log("get game_sync_push"); if (!data.ContainsKey("pseudo")) { rm.updateState(data); rm.updateSeats((JsonArray)data["seats"]); } DispatchEvent("user_hf_updated"); DispatchEvent("game_sync"); }); pc.on("hangang_notify_push", data => { int seatindex = Convert.ToInt32(data["seatindex"]); DispatchEvent("hangang_notify", seatindex); }); pc.on("game_action_push", data => { Debug.Log("get game_action_push"); rm.updateAction(data); DispatchEvent("game_action"); }); pc.on("game_chupai_push", data => { Debug.Log("get game_chupai_push"); rm.updateState(data); ChupaiPush cp = JsonUtility.FromJson <ChupaiPush> (data.ToString()); rm.updateLimit(cp.turn, cp.limit); if (cp.bg == true) { return; } DispatchEvent("game_turn_change"); }); pc.on("game_num_push", data => { rm.updateRoomInfo(data); DispatchEvent("game_num"); }); pc.on("game_over_push", data => { rm.updateOverInfo(data); DispatchEvent("game_over"); }); pc.on("mj_count_push", data => { rm.updateState(data); if (data.ContainsKey("bg")) { return; } DispatchEvent("mj_count"); }); pc.on("hu_push", data => { HuPushInfo info = rm.updateHu(data); if (info.bg) { return; } DispatchEvent("hupai", info); }); pc.on("game_chupai_notify_push", data => { Debug.Log("get game_chupai_notify_push"); ActionInfo info = rm.doChupai(data); if (info.bg == true) { return; } DispatchEvent("game_chupai_notify", info); }); pc.on("game_hf_push", data => { rm.updateFlowers(data); Debug.Log("get game_hf_push"); DispatchEvent("user_hf_updated"); }); pc.on("game_af_push", data => { ActionInfo info = rm.doAddFlower(data); if (info.bg == true) { return; } DispatchEvent("user_hf_updated", info); }); pc.on("game_mopai_push", data => { Debug.Log("get game_mopai_push"); ActionInfo info = rm.doMopai(data); if (info.bg == true) { return; } DispatchEvent("game_mopai", info); }); pc.on("guo_notify_push", data => { Debug.Log("get guo_notify_push"); ActionInfo info = rm.doGuo(data); if (info.bg == true) { return; } DispatchEvent("guo_notify", info); }); pc.on("guo_result", data => { Debug.Log("get guo_result"); DispatchEvent("guo_result"); }); pc.on("peng_notify_push", data => { ActionInfo info = rm.doPeng(data); if (info.bg == true) { return; } DispatchEvent("peng_notify", info); }); pc.on("chi_notify_push", data => { ActionInfo info = rm.doChi(data); if (info.bg == true) { return; } DispatchEvent("chi_notify", info); }); pc.on("gang_notify_push", data => { GangInfo info = rm.doGang(data); if (info.bg == true) { return; } DispatchEvent("gang_notify", info); }); pc.on("ting_notify_push", data => { TingInfo info = rm.doTing(data); if (info.bg == true) { return; } DispatchEvent("ting_notify", info.seatindex); }); pc.on("chat_push", data => { ChatInfo info = JsonUtility.FromJson <ChatInfo>(data.ToString()); DispatchEvent("chat", info); }); pc.on("quick_chat_push", data => { QuickChatInfo info = JsonUtility.FromJson <QuickChatInfo>(data.ToString()); DispatchEvent("quick_chat_push", info); }); pc.on("emoji_push", data => { EmojiPush info = JsonUtility.FromJson <EmojiPush>(data.ToString()); DispatchEvent("emoji_push", info); }); pc.on("demoji_push", data => { Debug.Log("get demoji_push"); DEmojiPush info = JsonUtility.FromJson <DEmojiPush>(data.ToString()); DispatchEvent("demoji_push", info); }); pc.on("dissolve_notice_push", data => { DissolveInfo dv = JsonUtility.FromJson <DissolveInfo>(data.ToString()); rm.dissolve = dv; DispatchEvent("dissolve_notice", dv); }); pc.on("dissolve_done_push", data => { Debug.Log("dissolve_done_push"); DispatchEvent("dissolve_done"); }); pc.on("dissolve_cancel_push", data => { Debug.Log("dissolve_cancel_push"); DissolveCancel dc = JsonUtility.FromJson <DissolveCancel>(data.ToString()); DispatchEvent("dissolve_cancel", dc); }); pc.on("voice_msg_push", data => { VoiceMsgPush vm = JsonUtility.FromJson <VoiceMsgPush>(data.ToString()); DispatchEvent("voice_msg", vm); }); pc.on("start_club_room", data => { }); pc.on("club_room_updated", data => { DispatchEvent("club_room_updated", data); }); pc.on("clu_room_removed", data => { DispatchEvent("clu_room_removed", data); }); pc.on("club_message_notify", data => { ClubMessageNotify ret = JsonUtility.FromJson <ClubMessageNotify>(data.ToString()); sclub_message_notify = ret; DispatchEvent("club_message_notify", ret); }); pc.on("sys_message_updated", data => { DispatchEvent("sys_message_updated", data); }); pc.on("recommend_room_updated", data => { Debug.Log("recommend_room_updated"); DispatchEvent("recommend_room_updated", data); }); }
/// <summary> /// 这里监听服务器主动发送的消息 /// </summary> /// <param name="route"></param> /// <param name="action"></param> public void Register(string route, Action <JsonNode_Object> action) { client.on(route, action); }
//工作 private void DoWork() { while (_isWorking) { // if (_workState == WorkState.ConnectGateState) { JW.Common.Log.LogD("Pomelo 开始连接网关"); //释放 if (_pomeloClient != null) { _pomeloClient.NetWorkStateChangedEvent -= OnPemeloNetworkStateChange; _pomeloClient.disconnect(); _pomeloClient.Dispose(); _pomeloClient = null; } _pomeloClient = new PomeloClient(); _pomeloClient.NetWorkStateChangedEvent += OnPemeloNetworkStateChange; // _pomeloClient.initClient(GateIp, GatePort, delegate() { // _pomeloClient.on(OnPomeloReceiveNetMsg); //套接字建立成功 _pomeloClient.connect(null, delegate(JsonObject data) { //握手回来 //开始查询游戏服务器地址 JW.Common.Log.LogD("Pomelo网关握手回来"); _workState = WorkState.ConnectGateQueryGSvrState; }); }); // _workState = WorkState.ConnectGateWaitingState; Thread.Sleep(200); continue; } if (_workState == WorkState.ConnectGateWaitingState) { // Thread.Sleep(200); } //请求查询游戏服务器地址 if (_workState == WorkState.ConnectGateQueryGSvrState) { JW.Common.Log.LogD("Pomelo 请求查询游戏服务器地址和端口"); string route = MSG_Query_Connector; JsonObject jsonObject = new JsonObject(); SendJsonMsg(route, jsonObject); // _workState = WorkState.ConnectGateQueryGSvrWaitingState; Thread.Sleep(200); continue; } // if (_workState == WorkState.ConnectGateQueryGSvrWaitingState) { // Thread.Sleep(200); } //连接游戏服务器 if (_workState == WorkState.ConnectGameSvrState) { //释放网关用过的 if (_pomeloClient != null) { //去掉下 _pomeloClient.NetWorkStateChangedEvent -= OnPemeloNetworkStateChange; _pomeloClient.disconnect(); _pomeloClient.Dispose(); _pomeloClient = null; } // _pomeloClient = new PomeloClient(); _pomeloClient.NetWorkStateChangedEvent += OnPemeloNetworkStateChange; // JW.Common.Log.LogD("Pomelo 连接游戏服务器:{0}:{1}", _gameSvrIp, _gameSvrPort); _pomeloClient.initClient(_gameSvrIp, _gameSvrPort, delegate() { //套接字建立成功 _pomeloClient.on(OnPomeloReceiveNetMsg); // _pomeloClient.connect(null, delegate(JsonObject data) { //握手回来 JW.Common.Log.LogD("------------>Pomelo Good Net<-----------------"); _workState = WorkState.ConnectGameSvrSuccessed; if (CurSessionState == SessionState.SessionRetry) { JW.Common.Log.LogD("Pomelo Retry Connect Successed"); } //成功 CurSessionState = SessionState.SessionSuccessed; }); // }); _workState = WorkState.ConnectGameSvrWaitingState; Thread.Sleep(200); continue; } if (_workState == WorkState.ConnectGameSvrWaitingState) { // Thread.Sleep(200); } if (_workState == WorkState.ConnectGameSvrRetryState) { // Thread.Sleep(200); } // if (_workState == WorkState.ConnectGameSvrSuccessed) { Thread.Sleep(1000); } } }