php专区

 首页 > php专区 > PHP应用 > 开放平台 > 微风IM 3.3系列之三:客户端与服务器端通信模式

微风IM 3.3系列之三:客户端与服务器端通信模式

分享到:
【字体:
导读:
         [导读] 通信框架为networkcomms 2 3 1使用TCP通信时,客户端端发送消息给服务器,比如 A消息是登陆消息 B消息是更新密码消息 服务器端如何区分A与B,并调用相应的处理器呢?NetworkComms通信框架采...

通信框架为networkcomms 2.3.1

使用TCP通信时,客户端端发送消息给服务器,比如 A消息是登陆消息 B消息是更新密码消息 服务器端如何区分A与B,并调用相应的处理器呢?

NetworkComms通信框架采用这样的机制:  客户端为每个消息分派一个“消息类型”,服务器端根据“消息类型”,找到相应的处理器。

以“登陆消息”为例

客户端代码:

                //在契约类中保存用户名和密码
                UserInfo userInfo = new UserInfo();
                userInfo.UserID = txtUserID.Texts.Trim();
                userInfo.Password = txtPassword.Texts.Trim();

                //发送契约类给服务器端,并获取返回的结果
                UserLoginContract loginContract = newTcpConnection.SendReceiveObject("UserLogin", "ResUserLogin", 8000, userInfo);


                //如果登陆成功
                if (loginContract.Message == "success")
                {
                 //进行下一步操作
                 }

UserInfo是一个可以序列化的契约类,用于传递信息

"UserLogin" 是我们指定的消息类型,服务器端收到此类型的消息,会调用相应的处理器进行处理,并按照约定,返回“ResUserlogin"消息类型的消息。

发送的消息实际类型是  UserInfo

返回的消息实际类型是  userLoginContract

服务器端代码:

(1)声明相应消息类型的处理器

 

 NetworkComms.AppendGlobalIncomingPacketHandler("UserLogin", IncomingLoginHandler);

(2)具体的处理器

 //注意  处理器的第三个参数的参数类型,与客户端发送的消息的实际类型是一致的

private void IncomingLoginHandler(PacketHeader header, Connection connection, UserInfo userInfo)
        {

            try
            {
                UserLoginContract resContract; //从数据库中验证登录信息
                resContract = DoRcUsers.Login(userInfo.UserID, userInfo.Password); 

               //返回消息给客户端  返回的消息的实际数据类型 与客户端发送消息时等待获取的数据类型一致
                connection.SendObject("ResUserLogin", resContract);
                
            }
            catch (Exception ex)
            {
                LogTools.LogException(ex, "IncomingLoginHandler");
            }
        }

分享到:
如何控制微信分享网页时,展示的标题,描...
在需要被微信分享的页面中,加入下面这一段JS代码就可以进行控制了。 var imgUrl = 'http://www.2cto.com/uploadfile/2015/0410/20150410090518471.png'; // 分享后展示的一张图片 var lineLink = 'http://xxx'; // 点击分享后跳转的页面地址 var descContent = "xx!";...
微信后台操作基础类管理 - 微信公众平台...
/** * Created by PhpStorm. * User: wym * Date: 15-3-18 * Time: 下午2:15 */ class Wx_function{   var $FromUsername = null;   var $ToUsername = null;   var $MsgType = null;   var $Event = null;   var $PicUrl = null;   var $EventKey = null;   var $Keyword = null;   var $...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……