问题描述
问题是当别人跟我发送消息时,我能最快的第一时间收到,不需要等待客户端向服务器发送请求,而是服务器收到消息马上把消息发生给你,网上很多都是用AJAX隐藏去不停的刷客户端,我想问一下有没有更好的方法
解决方案
解决方案二:
类似的帖子很多,不过还是关注新解
解决方案三:
1长连接2flash模拟socket3插件
解决方案四:
记得有一个设计模式,叫做观察者模式来着就是解决这个问题的服务器端数据一改变,会自动告诉所有观察者
解决方案五:
你说的OA系统,那就是在内部网内了,个人认为,用Socket通信1、首先要让服务器知道所有在线用户的IP地址(如:可以在登录的时候告知服务器或有人请求此页面时就在服务器上记录)这样在服务器上就维护了一张IP地址表,这张表可以与用户名对应,并在聊天页面上显示出来。2、在每个客户端要有一个Socket监听和发送代码(可以用Applet,js等支持或间接支持Socket语言写)3、用户从聊天页面中选择一户,到服务中获得IP,此后就可与之点对点socket通信了。总之。无论是客户端,还是服务器之间,只要能得到IP,和端口号就能Socket进行之间的实时通信。
解决方案六:
引用3楼fengyifei11228的回复:
记得有一个设计模式,叫做观察者模式来着就是解决这个问题的服务器端数据一改变,会自动告诉所有观察者
是有这个。
解决方案七:
up
解决方案八:
老问题了,再关注下
解决方案九:
ding
解决方案十:
关注
解决方案十一:
引用4楼2000ihby的回复:
你说的OA系统,那就是在内部网内了,个人认为,用Socket通信1、首先要让服务器知道所有在线用户的IP地址(如:可以在登录的时候告知服务器或有人请求此页面时就在服务器上记录)这样在服务器上就维护了一张IP地址表,这张表可以与用户名对应,并在聊天页面上显示出来。2、在每个客户端要有一个Socket监听和发送代码(可以用Applet,js等支持或间接支持Socket语言写)3、用户从聊天页面中选择一户,到服务中获得…
我觉得这个建议可以试下:另外还有一点就是,如果你想实现B/S的Web即时通讯的话,一定是有请求响应的,服务器端只能对请求做出响应,AJAX也是一样的,只是采用了异步的方式,你可以定期的去刷新服务器,请求资源,还有比较流行是的用AJAX推拉的方式,当服务器端没有更新时就等待,有就返回数据。建议还是用AJAX比较好,目前大多即时通讯大多都是采用AJAX。不管怎样,如果想没有请求服务器端就能做出响应,那就不是B/S了。