日期:2014-05-20  浏览次数:20687 次

servlet 长连接与短连接的疑问
公司的服务器端使用的是resin做中间件,通过客户端每隔几秒发送请求来进行互动。
这种就应该是短连接了吧?

短连接需要频繁的建立与断开连接,是不是对服务器的资源浪费很大?
如果换成长连接呢?长连接的缺点在哪里?

------解决方案--------------------
1.现在游戏中的玩家与玩家之间的聊天无法实现实时性,而且系统有邮件或信息时也不能及时的通知玩家
—— 如果涉及到聊天的话,一般来说还是用长连接会更合适,否则大量时间浪费到握手上了;
—— 但是手机的网络长连接网络质量可能会比较撮,你需要严重考虑容错和重链机制。


2.客户端每隔几秒就会发送一个请求,这样服务器的压力岂不是很大?
—— 压力会比较大,关键是聊天往往对时间的要求很高,如果是团战的话,1秒内没看到信息,可能就会觉得完全受不了了;当然也看你聊天的场景如何,是群聊还是单聊,以后会不会发展为语音啥的;


NIO没有任何问题,大规模长连接处理的主流都是用NIO;而且也不是Java发明的,本身就是借助了操作系统的网络管理能力。