如何巧妙地在基于 TCP Socket 的应用中实现用户注册功能?

这篇博客探讨了如何在基于TCP Socket的应用中实现用户注册功能,无需借助额外技术如WebAPI或.NET Remoting。通过修改登录机制,当password以“#Reg:”开头时标识注册行为,服务端与客户端通过特定约定处理注册请求和响应,从而在现有TCP连接上完成注册过程。
摘要由CSDN通过智能技术生成

      通常,在基于TCP的应用中(比如我开源的GGTalk即时通信系统),当TCP连接建立之后,第一个请求就是登录请求,只有登录成功以后,服务器才会允许客户端进行其它性质的业务请求。但是,注册用户这个功能比较特殊,因为在注册之前,还不存在这个UserID,就更不可能用这个UserID来登录了。

    所以,基于TCP的应用,用户注册功能一般是通过其它方式来实现的,比如,使用WebAPI,或者使用.NET Remoting等技术。 

      有没有办法可以不使用另外的技术而是直接基于当前的TCP连接来实现了?       

      经过我的摸索和实践,找到了一个方法,可以达到这样的效果,并且,即将推出的最新版本的GGTalk采用了这个方案。 这个方案,就是巧妙利用TCP应用的登录功能,在其基础上加上特殊的标记来表达注册行为。

我们先 看看GGTalk中的登录功能是如何做的。

一.现有的登录机制            

1.客户端

      客户端通过调用IRapidPassiveEngine的Initialize方法来与服务器建立TCP连接,并发送登录请求,以及获取登录结果。

        // 参数:
        //   userID:当前登录的用户ID,由数字和字母组成,最大长度为10
        //   logonPassword:用户登陆密码。
        //   serverIP:服务器的IP地址。
// serverPort:服务器的端口。 // customizeHandler:自定义处理器,用于处理服务器或其它用户发送过来的消息 LogonResponse Initialize(string userID, string logonPassword, string serverIP, int serverPort, ICustomizeHandler customizeHandler);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值