问题:就是在网站的首页做一个类似于QQ聊天界面的功能,不用很复杂,只要显示用户头像和发送的内容就行,也不用做聊天的记录。只要实时显示最新的20条记录即可?
个人思路:由于功能比较单一,不是很复杂,而且显示的内容只需要最新的20条,所以我打算用,AJAX轮询的方法去做,当用户输入聊天记录后,把记录存入数据库(AJAX轮询实时读取数据库数据),然后获取数据后,显示在页面上。请问这么做可以吗?这样做,多个人聊天时会不会出现什么问题呢?比如数据显示在页面上时会很慢什么的?
websoket可以用来做这个,但是没用过,也不知道可不可以在windows服务器上使用(项目部署在windows上的)。
问题来了:请问各位有没有什么好的简单的方法呢?给点意见呗!!!!
为情所困2017-06-28 09:24:36
websocket
或者socket.io
就可以实现了, 这个和操作平台关系不是很大, 和你实现的web服务程序关系比较大, 因为你得选择一个一个web程序支持websocket
或者socket.io. 我之前用
node.js`实现过, 也是参考网上的例子, 你也可以参考下
Node.js + Web Socket 打造即时聊天程序嗨聊
高洛峰2017-06-28 09:24:36
AJAX轮询的话,多人聊天时候,每个终端都得不断去请求数据库数据,有以下几个缺点:
由于请求次数比较多,会增加服务器的压力。
AJAX轮询本身比较慢
由于浏览器对于同一个域名下的AJAX请求数量有限制,所以数据交互的效率还是挺低的。
如果用WebSocket的话,我建议用nodeJS
的ws
做一个广播服务,可以挂起在Windows后台,也可以随意移植,相当方便,用到的库是这个:https://www.npmjs.com/package/ws
不得不说,NodeJS
写的东西无论的可移植性、扩展性还是兼容性都是挺不错的。
具体操作就不说了,可以参见ws
包的broadcase example
示例来写。