日期:2014-05-17  浏览次数:21253 次

怎样实现断线重连和意外消息判断
1:一个服务端,一个客户端,服务端会保存一个已连接的客户端的session,当客户端意外断掉,并且再某个时间内重新连接后,可不可以让这个客户端重新连接并且仍然使用这个session,怎样连接呢?

2:每次客户端启动都要连接上服务端,才能进行下一步用户名密码输入验证,这样,服务端每次都要开辟一些对象和连接给这个客户端,就算这个客户端立即离开,服务端也不会立即销毁这些开销,这样的问题怎么解决?

3:还有,被加密和序列化的数据无法判断是不是业务需要的接口,只能先解密,反序列化才能再判断,但是,如果有大量无用数据,就会大量消耗cpu和线程来接收这些无用数据,怎样才能避免这些开销呢?

------解决方案--------------------
2.客户端离开后(logout或者断线),如果实现心跳包机制,一般服务器端会受到异常,释放资源等待GC就行,这中间可能有一点延缓,不过一般不是大问题。
3.现在有Session ID,不是能确定只在Session里面的客户端你才接受数据;如果真知道用户名和密码,你肯定要解码了,要不你怎么知道是无用数据。