private void _Call_NotifyGameStart() { FSPGameStartParam param = new FSPGameStartParam(); param.fspParam = FSPServer.Instance.GetParam(); param.players = m_data.players; param.customGameParam = m_customGameParam; FSPServer.Instance.StartGame(); FSPServer.Instance.Game.onGameExit += OnGameExit; FSPServer.Instance.Game.onGameEnd += OnGameEnd; for (int i = 0; i < m_data.players.Count; i++) { var player = m_data.players[i]; IPEndPoint address = m_mapUserId2Address[player.userId]; param.fspParam.sid = player.sid; //将玩家加入到FSPServer中 FSPServer.Instance.Game.AddPlayer(player.id, player.sid); byte[] buff = PBSerializer.NSerialize(param); RPC(address, RPC_NotifyGameStart, buff); } }
/// <summary> /// 发送数据 /// </summary> /// <typeparam name="TRsp"></typeparam> /// <param name="cmd"></param> /// <param name="req"></param> /// <param name="onRsp"></param> /// <param name="timeout"></param> /// <param name="onErr"></param> /// <returns>返回唯一的发送Index</returns> public uint Send <TRsp>(uint cmd, object req, Action <uint, TRsp> onRsp, float timeout = 30, Action <NetErrorCode> onErr = null) { Debuger.LogVerbose("cmd:{0}, timeout:{1}", cmd, timeout); uint index = MessageIndexGenerator.NewIndex(); ListenerHelper helper = new ListenerHelper() { cmd = cmd, index = index, TMsg = typeof(TRsp), onErr = onErr, onMsg0 = onRsp, timeout = timeout, timestamp = SGFTime.GetTimeSinceStartup() }; m_listRspListener.Add(index, helper); NetMessage msg = new NetMessage(); msg.head.index = index; msg.head.cmd = cmd; msg.head.token = m_token; msg.content = PBSerializer.NSerialize(req); msg.head.dataSize = (uint)msg.content.Length; m_conn.Send(msg); return(index); }
private void SendBroadcast(int beginPort, int endPort, RPCMessage msg) { byte[] buffer = PBSerializer.NSerialize(msg); for (int i = beginPort; i < endPort; i++) { m_Socket.SendTo(buffer, buffer.Length, new IPEndPoint(IPAddress.Broadcast, i)); } }
public static void Save() { LDebugger.Log("GameConfig", "Save() Value=" + mConfig); if (mConfig != null) { byte[] data = PBSerializer.NSerialize(mConfig); FileUtils.SaveFile(Path, data); } }
public static void Save() { Debuger.Log("AppConfig", "Save() Value = " + m_Value); if (m_Value != null) { byte[] data = PBSerializer.NSerialize(m_Value); FileUtils.SaveFile(Path, data); } }
private void _Call_UpdateRoomInfo() { for (int i = 0; i < m_data.players.Count; ++i) { this.Log("_Call_UpdateRoomInfo() Player: {0}", m_data.players [i]); } byte[] param = PBSerializer.NSerialize(m_data); RPC(GetAllAddress(), RPC_UpdateRoomInfo, param); }
public bool Send(FSPFrame frame) { if (null != m_aSocket) { FSPDataS2C data = new FSPDataS2C(); data.frames.Add(frame); int len = PBSerializer.NSerialize(data, m_SendBuffer); return(m_aSocket.SendTo(m_SendBuffer, len, EndPoint)); } return(false); }
/// <summary> /// 加入房间 /// </summary> /// <param name="ip"></param> /// <param name="port"></param> public void JoinRoom(string ip, int port) { m_roomAddress = IPUtils.GetHostEndPoint(ip, port); PlayerData pd = new PlayerData (); pd.userId = m_mainUserId; pd.name = m_mainUserName; byte[] customPlayerData = PBSerializer.NSerialize(pd); RPC(m_roomAddress, FSPRoom.RPC_JoinRoom, m_mainUserId, m_mainUserName, customPlayerData); }
public void serializeToLocalWithType(List <object> msgs, Type messageType, uint cmdID, ulong timeStamp, uint serial, MessageSource source) { NetworkMessage packedMessageBody = new NetworkMessage(messageType, cmdID, timeStamp, serial, source); try { switch (source) { case MessageSource.Lua: if (msgs[0] is byte[]) { packedMessageBody.MessagesBodyBuffer.Add((byte[])msgs[0]); } break; case MessageSource.CSharp: try { PBSerializer.NDeserialize(PBSerializer.NSerialize(msgs[0]), messageType); } catch (Exception) { Debug.LogWarning(cmdID + "NTF测试未通过"); break; } packedMessageBody.MessagesBodyBuffer.Add(PBSerializer.NSerialize(msgs[0])); break; case MessageSource.CSharpAndLua: foreach (var item in msgs) { if (item is byte[]) { packedMessageBody.MessagesBodyBuffer.Add((byte[])item); } else { packedMessageBody.MessagesBodyBuffer.Add(PBSerializer.NSerialize(item)); } } break; } } catch { Debug.LogError("序列化出现问题"); Debug.LogError("消息数量:" + msgs.Count + " ;序列号:" + serial); } MessageManager.Instance.serializeToLocal(packedMessageBody, MessageManager.DEST_PATH_CSharp); }
public bool Save(string dirname, string filename) { Debuger.Log(""); if (string.IsNullOrEmpty(filename)) { return(false); } byte[] buffer = PBSerializer.NSerialize(m_content); return(FileUtils.SaveFile(dirname + filename, buffer) > 0); }
private void SendMessage(List <IPEndPoint> listTargets, RPCMessage msg) { byte[] buffer = PBSerializer.NSerialize(msg); for (int i = 0; i < listTargets.Count; i++) { IPEndPoint target = listTargets[i]; if (target != null) { m_Socket.SendTo(buffer, buffer.Length, target); } } }
public static void Save() { Debuger.Log("AppConfig", "Save() Value = " + m_Value); if (m_Value != null) { byte[] data = PBSerializer.NSerialize(m_Value); FileUtils.SaveFile(Path, data); //通知AudioManager修改 AudioManager.Instance.RefreshSetting(m_Value); } }
// Use this for initialization void Start() { YJWCL.Debuger.UseUnityEngine = true; Player ziyang = new Player(); ziyang.ID = 1; ziyang.Name = "ziyang"; ziyang.isGirl = false; byte[] buff = PBSerializer.NSerialize <Player>(ziyang); var player = PBSerializer.NDeserialize <Player>(buff); this.Log("ID:{0},Name:{1},IsGirl:{2}", player.ID, player.Name, player.isGirl); }
public void Send <TMsg>(ProtocolHead head, uint cmd, TMsg msg) { Debuger.LogVerbose("cmd:{0}", cmd); NetMessage msgobj = new NetMessage(); msgobj.head = head; msgobj.head.cmd = cmd; msgobj.head.token = m_token; msgobj.content = PBSerializer.NSerialize(msg); msgobj.head.dataSize = (uint)msgobj.content.Length; m_conn.Send(msgobj); }
public void Send <TReq>(uint cmd, TReq req) { Debuger.LogVerbose("cmd:{0}", cmd); NetMessage msg = new NetMessage(); msg.head.index = 0; msg.head.cmd = cmd; msg.head.token = m_token; msg.content = PBSerializer.NSerialize(req); msg.head.dataSize = (uint)msg.content.Length; m_conn.Send(msg); }
//================================================================== //发送数据 //================================================================== public bool Send(FSPFrame frame) { if (!IsActived()) { Debuger.LogWarning("Session已经不活跃了!"); return(false); } m_TempSendData.frames.Clear(); m_TempSendData.frames.Add(frame); int len = PBSerializer.NSerialize(m_TempSendData, m_SendBufferTemp); return(m_Kcp.Send(m_SendBufferTemp, len) == 0); }
public void Send <TMsg>(ISession session, ProtocolHead head, uint cmd, TMsg msg) { Debuger.LogVerbose("index:{0}, cmd:{1}", head.index, cmd); NetMessage msgobj = new NetMessage(); msgobj.head = head; msgobj.head.cmd = cmd; msgobj.head.token = session.AuthToken; msgobj.content = PBSerializer.NSerialize(msg); msgobj.head.dataSize = (uint)msgobj.content.Length; session.Send(msgobj); }
//------------------------------------------------------------ #region Send public bool SendFSP(int vkey, int arg, int clientFrameId) { if (m_IsRunning) { FSPVKey cmd = m_TempSendData.vkeys[0]; cmd.vkey = vkey; cmd.args = new int[] { arg }; cmd.clientFrameId = (uint)clientFrameId; int len = PBSerializer.NSerialize(m_TempSendData, m_TempSendBuf); return(m_Socket.SendTo(m_TempSendBuf, len, m_HostEndPoint)); } return(false); }
// Use this for initialization void Start() { UserInfo info1 = new UserInfo(); info1.id = 123; info1.name = "SHENGLU"; info1.title = "student"; byte[] buff = PBSerializer.NSerialize(info1); var info2 = PBSerializer.NDeserialize <UserInfo>(buff); this.LogWarning("info1 --- id:{0}, name:{1}, title:{2}", info1.id, info1.name, info1.title); this.LogWarning("info2 --- id:{0}, name:{1}, title:{2}", info2.id, info2.name, info2.title); }
public void Invoke(int dst, string name, params object[] args) { Debuger.Log("->[{0}] {1}({2})", dst, name, args.ToListString()); RPCMessage rpcmsg = new RPCMessage(); rpcmsg.name = name; rpcmsg.args = args; IPCMessage msg = new IPCMessage(); msg.src = m_id; msg.rpc = rpcmsg; byte[] temp = PBSerializer.NSerialize(msg); SendMessage(dst, temp, temp.Length); }
public void Send <TMsg>(ISession session, uint index, uint cmd, TMsg msg) { Debuger.Log("index:{0}, cmd:{1}", index, cmd); NetMessage msgobj = new NetMessage(); msgobj.head.index = index; msgobj.head.cmd = cmd; msgobj.head.uid = session.uid; msgobj.content = PBSerializer.NSerialize(msg); msgobj.head.dataSize = (ushort)msgobj.content.Length; byte[] tmp; int len = msgobj.Serialize(out tmp); session.Send(tmp, len); }
public void Send <TReq>(uint cmd, TReq req) { Debuger.Log("cmd:{0}", cmd); NetMessage msg = new NetMessage(); msg.head.index = 0; msg.head.cmd = cmd; msg.head.uid = m_uid; msg.content = PBSerializer.NSerialize(req); msg.head.dataSize = (ushort)msg.content.Length; byte[] temp; int len = msg.Serialize(out temp); m_conn.Send(temp, len); }
public void Send <TReq, TRsp>(uint cmd, TReq req, Action <TRsp> onRsp, float timeout = 30, Action <NetErrorCode> onErr = null) { NetMessage msg = new NetMessage(); msg.head.index = MessageIndexGenerator.NewIndex(); msg.head.cmd = cmd; msg.head.uid = m_uid; msg.content = PBSerializer.NSerialize(req); msg.head.dataSize = (ushort)msg.content.Length; byte[] temp; int len = msg.Serialize(out temp); m_conn.Send(temp, len); AddListener(cmd, typeof(TRsp), onRsp, msg.head.index, timeout, onErr); }
public void Invoke(ISession session, string name, params object[] args) { Debuger.LogVerbose("->Session[{0}] {1}({2})", session.Id, name, args.ToListString()); RPCMessage rpcmsg = new RPCMessage(); rpcmsg.name = name; rpcmsg.args = args; byte[] buffer = PBSerializer.NSerialize(rpcmsg); NetMessage msg = new NetMessage(); msg.head = new ProtocolHead(); msg.head.dataSize = (uint)buffer.Length; msg.content = buffer; session.Send(msg); }
public void ReturnError(string errinfo, int errcode = 1) { var name = "On" + m_currInvokingName + "Error"; Debuger.LogWarning("->[{0}] {1}({2},{3})", m_currInvokingSrc, name, errinfo, errcode); RPCMessage rpcmsg = new RPCMessage(); rpcmsg.name = name; rpcmsg.args = new object[] { errinfo, errcode }; IPCMessage msg = new IPCMessage(); msg.src = m_id; msg.rpc = rpcmsg; byte[] temp = PBSerializer.NSerialize(msg); SendMessage(m_currInvokingSrc, temp, temp.Length); }
/// <summary> /// 启动服务器 /// </summary> public void StartServer() { FSPServer.Instance.Start(0); //自定义的游戏参数 //比如游戏的地图ID,随机种子,游戏模式等等 GameParam gameParam = new GameParam(); byte[] customGameParam = PBSerializer.NSerialize(gameParam); //将自定义游戏参数传给房间 //以便于由房间通知玩家游戏开始时,能够将该参数转发给所有玩家 FSPServer.Instance.Room.SetCustomGameParam(customGameParam); FSPServer.Instance.SetServerTimeout(0); string ipport = GetRoomIP() + ":" + GetRoomPort(); onStartServer.Invoke(ipport); }
public void ReturnError(params object[] args) { var name = "On" + m_currInvokingName + "Error"; RPCMessage rpcmsg = new RPCMessage(); rpcmsg.name = name; rpcmsg.args = args; byte[] buffer = PBSerializer.NSerialize(rpcmsg); NetMessage msg = new NetMessage(); msg.head = new ProtocolHead(); msg.head.dataSize = (uint)buffer.Length; msg.content = buffer; m_currInvokingSession.Send(msg); }
public void Invoke(string name, params object[] args) { Debuger.LogVerbose("->Connection[{0}] {1}({2})", m_conn.Id, name, args); RPCMessage rpcmsg = new RPCMessage(); rpcmsg.name = name; rpcmsg.args = args; byte[] buffer = PBSerializer.NSerialize(rpcmsg); NetMessage msg = new NetMessage(); msg.head = new ProtocolHead(); msg.head.token = m_token; msg.head.dataSize = (uint)buffer.Length; msg.content = buffer; m_conn.Send(msg); }
/// <summary> /// start server /// </summary> public void StartServer() { FSPServer.Instance.Start(0); //customized game params //for example game map ID, random seed, game mode etc. GameParam gameParam = new GameParam(); byte[] customGameParam = PBSerializer.NSerialize(gameParam); //send customized params to game room //those params would send to players when game starts FSPServer.Instance.Room.SetCustomGameParam(customGameParam); FSPServer.Instance.SetServerTimeout(0); string ipport = GetRoomIP() + ":" + GetRoomPort(); onStartServer.Invoke(ipport); }
public void Return(params object[] args) { var name = "On" + m_currInvokingName; Debuger.Log("->[{0}] {1}({2})", m_currInvokingSrc, name, args.ToListString()); RPCMessage rpcmsg = new RPCMessage(); rpcmsg.name = name; rpcmsg.args = args; IPCMessage msg = new IPCMessage(); msg.src = m_id; msg.rpc = rpcmsg; byte[] temp = PBSerializer.NSerialize(msg); SendMessage(m_currInvokingSrc, temp, temp.Length); }