void reciver_ReceiveCmd(object sender, QcCmdEventArgs e) { if (this.ReceivedCmd != null) { this.ReceivedCmd(this, e); } }
void server_ReceiveCmd(object sender, QcCmdEventArgs e) { QcCmd cmd = e.Cmd; string from = e.Cmd.tokens(1); switch (cmd.CmdType) { case QcProtocol.QcCommand.QcUserLogin: bool blLogined = false; if (cmd.tokens(2) == User.Name) { blLogined = true; QcChanel chanel = new QcChanel(); chanel.SetChanel(e.Chanel, server); if (lstUser.ContainsKey(from)) { lstUser[from].Chanel = chanel; if (this.Logined != null) { var userfrom = lstUser[from]; var evtarg = new QcMessagerLoginEventArg(userfrom); this.Logined(this, evtarg); } } } QcClientService qcs = e.Chanel as QcClientService; e.Chanel.Send(QcCmd.MakeCmd(QcProtocol.QcCommand.QcLoginReplay, blLogined)); if (blLogined && from != User.Name) { e.Chanel.Send(QcCmd.MakeCmd(QcProtocol.QcCommand.QcUserLogin, User.Name, from)); } break; } }
void serverchanel_ReceivedCmd(object sender, QcCmdEventArgs e) { // 这是登录服务器,首次登陆,没有创建连接对象 if (lstUser.ContainsKey(e.Cmd.tokens(1)) == false) { return; } var userfrom = lstUser[e.Cmd.tokens(1)]; if (userfrom == null) { return; } switch (e.Cmd.CmdType) { case QcProtocol.QcCommand.QcMsg: if (this.ReciveMsg != null) { var msgevtarg = new QcMessagerMsgEventArg(e.Cmd.tokens(1), e.Cmd.tokens(3), e.Cmd.tokens(4)); this.ReciveMsg(this, msgevtarg); } break; case QcProtocol.QcCommand.QcLoginReplay: break; case QcProtocol.QcCommand.QcLoginOut: if (this.Loginout != null) { var evt = new QcMessagerLoginEventArg(userfrom); this.Loginout(this, evt); } userfrom.Close(); break; case QcProtocol.QcCommand.QcUserLogin: if (sender == serverchanel) { return; } if (userfrom.Name == User.Name) { return; } bool blLogined = false; if (e.Cmd.tokens(2) == User.Name) { blLogined = true; if (this.Logined != null) { var evtarg = new QcMessagerLoginEventArg(userfrom); this.Logined(this, evtarg); } } e.Chanel.Send(QcCmd.MakeCmd(QcProtocol.QcCommand.QcLoginReplay, blLogined)); break; } if (this.ReciveCmd != null) { var cmdevt = new QcMessagerCmdEventArg() { cmd = e.Cmd, user = userfrom }; this.ReciveCmd(this, cmdevt); } }