WebSocket
反向Ajax,即数据从浏览器端向服务器端发起请求,将数据从服务器端 推送 到浏览器端,可以通过 HTTP轮询 ,Comet (长轮询/iframe),websockets等技术来实现。
我们来学习一下WebSocket,它是HTML5的一种新通信协议,一种新的实现反向Ajax的技术,Websockets只是一个协议,我们需要去实现这些协议。目前有很多好的方案,最好的就是socket.io。
Socket.io是一个完全由JavaScript实现、基于Node.js、支持WebSocket的协议用于实时通信、跨平台的开源框架,它包括了客户端的JavaScript和服务器端的Node.js。
由于是双向通信,可以在浏览器端向服务器端发送请求,也可以从服务器端向浏览器端发送请求。包括两个部分,客户端有一个socket.io相关的对象,同理,在服务器端也有一个socket.io相关的对象。
Socket.io设计的目标是构建能够在不同浏览器和移动设备上良好运行的实时应用,如实时分析系统、二进制流数据处理应用、在线聊天室、在线客服系统、评论系统、WebIM等。使用之前,需要安装socket.io
① 服务器端: 使用npm install socket.io
②客户端: 需要下载对应的js文件 socket.io.js
例如:仿QQ聊天室
当有人发消息的时候,聊天室里的其他人就能实时请求看得到这些消息,实现的功能如下:设置用户的昵称,头像显示昵称的第一个字/字母,显示当前在线人数,好友上线提示别人.
测试结果如下:
☞ 日益努力,而后风生水起。众生皆苦,你也不能认输O(∩_∩)O