javascript - 问一个在web页面做一个即时通讯功能的问题??
typecho
typecho 2017-06-28 09:22:36
0
2
661

问题:就是在网站的首页做一个类似于QQ聊天界面的功能,不用很复杂,只要显示用户头像和发送的内容就行,也不用做聊天的记录。只要实时显示最新的20条记录即可?

个人思路:由于功能比较单一,不是很复杂,而且显示的内容只需要最新的20条,所以我打算用,AJAX轮询的方法去做,当用户输入聊天记录后,把记录存入数据库(AJAX轮询实时读取数据库数据),然后获取数据后,显示在页面上。请问这么做可以吗?这样做,多个人聊天时会不会出现什么问题呢?比如数据显示在页面上时会很慢什么的?

websoket可以用来做这个,但是没用过,也不知道可不可以在windows服务器上使用(项目部署在windows上的)。

问题来了:请问各位有没有什么好的简单的方法呢?给点意见呗!!!!

typecho
typecho

Following the voice in heart.

全部回复(2)
为情所困

websocket或者socket.io就可以实现了, 这个和操作平台关系不是很大, 和你实现的web服务程序关系比较大, 因为你得选择一个一个web程序支持websocket或者socket.io. 我之前用node.js`实现过, 也是参考网上的例子, 你也可以参考下
Node.js + Web Socket 打造即时聊天程序嗨聊

小葫芦

AJAX轮询的话,多人聊天时候,每个终端都得不断去请求数据库数据,有以下几个缺点:

  1. 由于请求次数比较多,会增加服务器的压力。

  2. AJAX轮询本身比较慢

  3. 由于浏览器对于同一个域名下的AJAX请求数量有限制,所以数据交互的效率还是挺低的。

如果用WebSocket的话,我建议用nodeJSws做一个广播服务,可以挂起在Windows后台,也可以随意移植,相当方便,用到的库是这个:https://www.npmjs.com/package/ws
不得不说,NodeJS写的东西无论的可移植性、扩展性还是兼容性都是挺不错的。

具体操作就不说了,可以参见ws包的broadcase example示例来写。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!