// 发送消息 public void Send(INbsSerializer objMsg) { if (Connected) { ListSend.Enqueue(objMsg); } }
public static void SendByServerID(int serverID, INbsSerializer objMsg) { if (GameServerLinkManager.DictClientLink.TryGetValue(serverID, out var world)) { world.Send(objMsg); } }
private void button9_Click(object sender, EventArgs e) { textBox7.Text = ""; var type = Assembly.Load("ServerBase").GetType("ServerBase.Protocol." + textBox6.Text); if (type == null) { MessageBox.Show("协议类型错误"); return; } INbsSerializer msg = (INbsSerializer)Activator.CreateInstance(type, true); var propertys = type.GetFields(); int count = dataGridView7.Rows.Count; for (int i = 0; i < count; i++) { var name = dataGridView7.Rows[i].Cells[1].Value; var field = propertys.FirstOrDefault(p => p.Name.Equals(name)); if (field != null) { field.SetValue(msg, Convert.ChangeType(dataGridView7.Rows[i].Cells[2].Value, field.FieldType)); } } ClientNetSingle.Send(msg); msgString = textBox6.Text.Replace("C2G", "G2C"); }
public static void SendAll(INbsSerializer objMsg) { var nbs = objMsg.Serialize(); foreach (var session in BaseServerInfo.AllSessions.Values) { Send(session, objMsg); } }
//发送给游戏服务器消息 public static void SendToGame(int serverID, INbsSerializer objMsg) { var nbs = objMsg.Serialize(); if (DictServerLinkGame.TryGetValue(serverID, out var serverlink)) { var session = BaseServerInfo.AppServer.GetSessionByID(serverlink.SessionID); BaseDispatch.Send(session, objMsg); } }
//广播给游戏服务器消息 public static void BoardcastToGame(INbsSerializer objMsg) { var nbs = objMsg.Serialize(); foreach (var item in DictServerLinkGame.Values) { var session = BaseServerInfo.AppServer.GetSessionByID(item.SessionID); BaseDispatch.Send(session, objMsg); } }
public static void SendMsg(INbsSerializer msg, List <long> puids) { foreach (var puid in puids) { if (Dispatcher.DictPuidSession.TryGetValue(puid.ToString(), out var session)) { //session.Send(msg); BaseDispatch.Send(session, msg); } } }
public static void SendToGame(INbsSerializer objMsg, int serverID = 12011) { if (GateServerLinkManager.DictServerLinkGame.TryGetValue(serverID, out var game)) { game.Send(objMsg); } else { loger.Warn($"发送错误,游戏服务器ID-> {serverID}"); } }
public static void SendByServerID(int serverID, INbsSerializer objMsg) { if (GateServerLinkManager.DictServerLinkLogin.TryGetValue(serverID, out var login)) { login.Send(objMsg); } else if (GateServerLinkManager.DictServerLinkGame.TryGetValue(serverID, out var game)) { game.Send(objMsg); } }
public static void SendToLogin(INbsSerializer objMsg, int serverID = 12101) { if (GateServerLinkManager.DictServerLinkLogin.TryGetValue(serverID, out var login)) { login.Send(objMsg); } else { loger.Warn($"发送错误,登录服务器ID-> {serverID}"); } }
/// <summary> /// 发送消息(通过服务器ID) /// </summary> /// <param name="serverid"></param> /// <param name="nbs"></param> public static void SendToServer(int serverid, INbsSerializer objMsg) { try { var lk = GameServerLinkManager.DictClientLink[serverid]; lk.Send(objMsg.Serialize()); } catch { loger.Error($"发送消息到服务器 {serverid} 失败"); } }
/// <summary> /// 发送消息(通过服务器类型) /// </summary> /// <param name="linktype"></param> /// <param name="nbs"></param> public static void SendToType(int linktype, INbsSerializer objMsg) { var nbs = objMsg.Serialize(); foreach (var item in GameServerLinkManager.DictClientLink.Values) { if (item.LinkType == linktype) { item.Send(nbs); } } }
public static void SendAll(LunarSession session, INbsSerializer objMsg, long selfid = 0) { foreach (var item in DictPlayerOnline.Values) { if (item.Id == selfid) { continue; } ((ProtocolMsgBase)objMsg).RspPuids.Add(item.Id); } ((ProtocolMsgBase)objMsg).Puid = selfid; if (((ProtocolMsgBase)objMsg).RspPuids.Count > 0 || ((ProtocolMsgBase)objMsg).Puid != 0) { session.SendMerge(objMsg); } }
public void SendMerge(INbsSerializer msg) { if (msg is G2E_Game_PlayerXYOther) { var msgPlayerXY = msg as G2E_Game_PlayerXYOther; var merge = ListSendMerge.FirstOrDefault(p => p.Puid == msgPlayerXY.Puid && p.PlayerXY.Uid == msgPlayerXY.PlayerXY.Uid); if (merge != null) { merge = msgPlayerXY; } else { ListSendMerge.Enqueue(msgPlayerXY); } } }
/// <summary> /// 立即发送消息(通过session) /// </summary> public static void Send(LunarSession session, INbsSerializer objMsg) { try { if (session.Connected) { var nbs = objMsg.Serialize(); ushort id = nbs.ReadProtocolHeader(); ushort result = nbs.ReadProtocolResult(); loger.Info($"发送{(EServerType)session.SessionType}数据包 协议号:{(EProtocolId)id}->{id} 错误码:{(EProtocolResult)result}->{result} 长度:{nbs.Length}"); session.Send(nbs.BYTES, 0, nbs.Length); } } catch (Exception ex) { loger.Fatal("立即发送消息失败", ex); } }
private void textBox6_TextChanged(object sender, EventArgs e) { var type = Assembly.Load("ServerBase").GetType("ServerBase.Protocol." + textBox6.Text); if (type == null) { return; } var dgv = dataGridView7; dgv.Rows.Clear(); try { INbsSerializer msg = (INbsSerializer)Activator.CreateInstance(type, true); var propertys = type.GetFields(); foreach (var fieldInfo in propertys) { if (fieldInfo.Name == "_protocol" || fieldInfo.Name == "_result" || fieldInfo.Name == "Pin" || fieldInfo.Name == "Puid" || fieldInfo.Name == "Shuttle") { continue; } var value = fieldInfo.GetValue(msg); var row = new List <object>(); var objs = fieldInfo.GetCustomAttributes(typeof(DescAttribute), true); row.Add(((DescAttribute)objs[0]).DescStr); row.Add(fieldInfo.Name); row.Add(value); dgv.Rows.Add(row.ToArray()); } } catch (Exception ex) { MessageBox.Show($"协议错误!{ex}"); return; } }
//向登录服务器发送数据 public void Send(INbsSerializer objMsg) { Send(objMsg.Serialize()); }
/// <summary> /// 发送消息给世界服务器 /// </summary> /// <param name="nbs"></param> public static void SendToWorld(INbsSerializer objMsg) { SendToType((int)EServerType.世界, objMsg); }
/// <summary> /// 发送消息给登陆服务器 /// </summary> /// <param name="nbs"></param> public static void SendToLogin(INbsSerializer objMsg) { SendToType((int)EServerType.登陆, objMsg); }