servlet 长连接与短连接的疑问 公司的服务器端使用的是resin做中间件,通过客户端每隔几秒发送请求来进行互动。这种就应该是短连接了吧?短连接需要频繁的建立与断开连接,是不是对服务器的资源浪费很大?如果换成长连接呢?长连接的缺点在哪里? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从网络技术层面来说:TCP本身是长连接的。当然从业务层面来说:每次连接只处理一笔请求的可以称为短连接;处理业务后不断开连接而是等待处理下一笔可以称为长连接。至于实际场合究竟需要使用短连接还是长连接,主要看实时性要求、数据流向 和 并发量 这三个问题。由于你没有说明请求关于这三个问题上的特点,所以没法给你具体建议。长连接优点:节约TCP握手时间,可以保证高实时性,数据流向可以采用服务器端的主动推模式。长连接缺点:并发量不宜太高,持续占用服务端口(相对消耗资源)。我有一个基于长连接推模型的聊天室的简单样例,你可以看看:http://blog.csdn.net/ldh911/article/details/7268879 明白您说的意思。我再努力描述一下我这边的情况。我做手机游戏服开发,客户端每隔几秒发送一次请求,服务器端就是一个servlet做中转,处理逻辑,然后返回结果。现在我觉得的几个问题是:1.现在游戏中的玩家与玩家之间的聊天无法实现实时性,而且系统有邮件或信息时也不能及时的通知玩家2.客户端每隔几秒就会发送一个请求,这样服务器的压力岂不是很大?我想出的一个方案是通过NIO来解决长连接问题和并发量的问题,不知道合不合适,请指教 1.现在游戏中的玩家与玩家之间的聊天无法实现实时性,而且系统有邮件或信息时也不能及时的通知玩家—— 如果涉及到聊天的话,一般来说还是用长连接会更合适,否则大量时间浪费到握手上了;—— 但是手机的网络长连接网络质量可能会比较撮,你需要严重考虑容错和重链机制。2.客户端每隔几秒就会发送一个请求,这样服务器的压力岂不是很大?—— 压力会比较大,关键是聊天往往对时间的要求很高,如果是团战的话,1秒内没看到信息,可能就会觉得完全受不了了;当然也看你聊天的场景如何,是群聊还是单聊,以后会不会发展为语音啥的;NIO没有任何问题,大规模长连接处理的主流都是用NIO;而且也不是Java发明的,本身就是借助了操作系统的网络管理能力。 求解 运行出错 java.io.FileNotFoundException: e:\ (系统找不到指定的路径。) 插入一条有语句 SSH 表单提交上的数据不能插入数据库 JProgressBar怎么使用? 改函数,关于时间问题 各位大虾,问个关于java生成图象的问题 看《JAVA编程思想》的一点疑惑 可以把一个对象数组加入到Vector中吗? 有关于HashMap的问题 关于java调用构造器初始化步骤的疑问?? 进度条问题ProgressMonitor log4j输出info,error问题
至于实际场合究竟需要使用短连接还是长连接,主要看实时性要求、数据流向 和 并发量 这三个问题。由于你没有说明请求关于这三个问题上的特点,所以没法给你具体建议。长连接优点:节约TCP握手时间,可以保证高实时性,数据流向可以采用服务器端的主动推模式。
长连接缺点:并发量不宜太高,持续占用服务端口(相对消耗资源)。
我有一个基于长连接推模型的聊天室的简单样例,你可以看看:
http://blog.csdn.net/ldh911/article/details/7268879
明白您说的意思。我再努力描述一下我这边的情况。我做手机游戏服开发,客户端每隔几秒发送一次请求,服务器端就是一个servlet做中转,处理逻辑,然后返回结果。现在我觉得的几个问题是:1.现在游戏中的玩家与玩家之间的聊天无法实现实时性,而且系统有邮件或信息时也不能及时的通知玩家
2.客户端每隔几秒就会发送一个请求,这样服务器的压力岂不是很大?我想出的一个方案是通过NIO来解决长连接问题和并发量的问题,不知道合不合适,请指教
—— 如果涉及到聊天的话,一般来说还是用长连接会更合适,否则大量时间浪费到握手上了;
—— 但是手机的网络长连接网络质量可能会比较撮,你需要严重考虑容错和重链机制。
2.客户端每隔几秒就会发送一个请求,这样服务器的压力岂不是很大?
—— 压力会比较大,关键是聊天往往对时间的要求很高,如果是团战的话,1秒内没看到信息,可能就会觉得完全受不了了;当然也看你聊天的场景如何,是群聊还是单聊,以后会不会发展为语音啥的;
NIO没有任何问题,大规模长连接处理的主流都是用NIO;而且也不是Java发明的,本身就是借助了操作系统的网络管理能力。