static void Client( ) { Console.WriteLine("client"); var ed = new EventDispatcher(); var codec = new ProtobufCodec(); var peer = new Connector(ed.Queue, codec).Start("127.0.0.1:7010"); //var peer = new Connector(ed.Queue, codec).Start("192.168.0.138:8000"); Subscribe.RegisterMessage <gamedef.SessionConnected>(ed, (msg, ses) => { Console.WriteLine("SessionConnected"); var ack = new gamedef.TestEchoACK(); ack.Content = "client"; ses.Send(ack); }); Subscribe.RegisterMessage <gamedef.TestEchoACK>(ed, (msg, ses) => { var ack = new gamedef.TestEchoACK(); ack.Content = "hello"; ses.Send(ack); }); ed.Start(); ed.Wait(); }
static void Server( ) { Console.WriteLine("server"); var ed = new EventDispatcher(); var codec = new ProtobufCodec(); var peer = new Acceptor(ed.Queue, codec).Start("127.0.0.1:7010"); Subscribe.RegisterMessage <gamedef.SessionAccepted>(ed, (msg, ses) => { Console.WriteLine("SessionAccepted"); }); var meter = new QPSMeter(ed, (qps) => { Console.WriteLine("qps: {0}", qps); }); Subscribe.RegisterMessage <gamedef.TestEchoACK>(ed, (msg, ses) => { meter.Acc(); ses.Send(msg); }); ed.Start(); ed.Wait(); }
private void peerCall(ProtocolDataModel pdm) { IMInfo info = ProtobufCodec.DeSerialize <IMInfo>(pdm.Message); ChatManager._instance.InviteCome = true; ChatManager._instance.ChatPeerName = info.UserName; ChatManager._instance.ChatPeerID = info.UserID; ChatManager._instance.CallID = info.CallID; int type = info.CallType; ChatDataHandler.Instance.chatType = type == 1 ? ChatType.Audio : ChatType.AV; print("收到通话邀请:" + info.UserName + ",CallID:" + info.CallID); }
/// <summary> /// /登录 /// </summary> /// <param name="account">账号</param> /// <param name="password">密码</param> public void Login(string account, string password) { checkConnect(); ProtocolDataModel pd = new ProtocolDataModel(); pd.Type = ProtocolType.TYPE_MYSQL; pd.Request = MySqlDataProtocol.MYSQL_LOGIN_CRES; LoginInfo info = new LoginInfo(); info.Account = account; info.Password = password; pd.Message = ProtobufCodec.Serialize(info); NetWorkManager.Instance.Send(pd); }
/// <summary> /// 挂断 /// </summary> public void Hang() { if (CallID != "") { CallID = ""; checkConnect(); ProtocolDataModel pd = new ProtocolDataModel(); pd.Type = ProtocolType.TYPE_IM; pd.Request = IMProtocol.IM_HANG_CRES; IMInfo info = new IMInfo(); info.PeerID = ChatPeerID; pd.Message = ProtobufCodec.Serialize(info); NetWorkManager.Instance.Send(pd); //结束udp传输 ChatDataHandler.Instance.StopChat(); } }
private void Login(ProtocolDataModel pdm) { if (pdm.Message.Length == 4) { ResultCode result = (ResultCode)(BitConverter.ToInt32(pdm.Message, 0)); print("Login result:" + result.ToString()); bool res = result == ResultCode.RESULT_SUCCESS ? true : false; MainUIManager._instance.LoginResult(res); } else { UserInfo user = ProtobufCodec.DeSerialize <UserInfo>(pdm.Message); ChatManager._instance.UserID = user.UserID; ChatManager._instance.UserName = user.UserName; ChatManager._instance.UserPortrait = user.UserPortrait; } }
/// <summary> /// 接听 /// </summary> public void Accept() { checkConnect(); ProtocolDataModel pd = new ProtocolDataModel(); pd.Type = ProtocolType.TYPE_IM; pd.Request = IMProtocol.IM_ACCEPT_CRES; IMInfo info = new IMInfo(); info.UserName = UserName; info.UserID = UserID; info.PeerID = ChatPeerID; //info.CallType = type; pd.Message = ProtobufCodec.Serialize(info); NetWorkManager.Instance.Send(pd); //开始udp传输 ChatDataHandler.Instance.StartChat(); }
private void GetOnlineUser(ProtocolDataModel pdm) { OnlineUserInfo info = ProtobufCodec.DeSerialize <OnlineUserInfo>(pdm.Message); if (info != null) { ChatManager._instance.OnlineUserList = info.OnlineUserLiset; } else { ChatManager._instance.OnlineUserList = new Dictionary <int, string>(); } ChatManager._instance.UserlistUpdate = true; int count = info == null ? 0 : info.OnlineUserLiset.Count; print("GetOnlineUser:" + count); }
/// <summary> /// 呼叫 /// </summary> /// <param name="callID">呼叫ID</param> /// <param name="type">呼叫类型 1:音频 2:视频</param> /// <param name="from">呼叫者 ID</param> /// <param name="to">被呼叫者ID </param> public void Call(string callID, int type, int from, int to) { if (CallID == "") { CallID = callID; checkConnect(); ProtocolDataModel pd = new ProtocolDataModel(); pd.Type = ProtocolType.TYPE_IM; pd.Request = IMProtocol.IM_CALL_CRE; IMInfo info = new IMInfo(); info.UserName = UserName; info.UserID = UserID; info.CallID = callID; info.CallType = type; ChatDataHandler.Instance.chatType = type == 1 ? ChatType.Audio : ChatType.AV; info.PeerID = to; ChatPeerID = to; pd.Message = ProtobufCodec.Serialize(info); NetWorkManager.Instance.Send(pd); } }