基于WebSocket的消息实时推送设计与实现
2018-12-24王小美常州科信交通科技有限公司
王小美 常州科信交通科技有限公司
1 WebSocket的应用前景
根据互联网技术的快速发展,WebSocket基于B/S的技术逐渐被应用广泛,如现场体育直播中加入体育赛事的图标。互联网聊天网站的应用程序的版本也越来越复杂,如在线聊天、网络监控系统、QQ、微信。在这些应用程序中,人们需要接受与发送消息,其所需网络的格式是基于p&p合同和msp同意的工作模式`responseresponse`,也就是说,用户通过Web浏览器与客户端主动发送数据请求,使服务器进行请求处理,应注意在处理过程中对用户的后续回复不应以这种方式连接到服务器,由于这些信息是主动传递到客户端的,所以这个消息属于实时传送范畴,这些问题通用的解决方案是查询技术,彗星与msp连接问题,通过实时发送一种假定服务器,以便实际的客户端能与用户建立数据连接,在连接过程中要多次更新Web内容。事实上,在传输过程中浪费服务器资源和传输信息空间很容易,彗星连接技术与某种类似msp连接的服务器技术相类似,能够有效的利用好服务器资源和传输信息空间,通过ajax引擎浏览器请求服务器响应,然后浏览器通过ajax向服务器发送请求,只有当新消息到达时才会进行数据的再发送,最后浏览器收到回复再次统一发送请求。所以这样会减少浪费资源和传输空间,而且持续时间变短,当数据传输数量变少时,服务器负担也会随之减小WebSocket技术的使用已经解决了许多关于数据传输效率的问题,并很好地解决了服务器与客户端的传输问题,有着良好的应用前景。
2 服务器推送系统的设计和实现
2.1 系统整体设计
Windows 7平台基于WebSocket协议,从服务器进行实时传输,并安装节点socket。oio使用socket.oio提供的javascript api,地址在服务器的末尾。http-mop-socket.io模块的功能是拦截某个终端的服务器总线传输数据,并根据特定信息地址传达并置于客户端。当客户端收到中断请求时,该功能就会被停止并创建一个链接来设置执行程序返回到服务器,将信息传递给高级中断请求。
2.2 客户端实现
基于篇幅有限下面只举段例说明:
document.getElementById(`state`).InnerText = ` 和websocket服务器断开连接`;
//由于追随者;
//它是在一台服务器上完成的
var http = require(`http`);//计费http模块;
var io = require(`socket.io`);
var server = http.CreateServer(function(req,res){
res.end();
});
server.listen(888);
//启动http服务器的主要功能;
var websocket = io.Listen(server);
websocket.on(`connection`,function(socket){
//客户端功能,与websocket连接成功
});
//控制台与日志(“客户端”)断开连接;
2.3 运行测试
许多主流浏览器已经支持WebSocket,常见的有Chrome,Firefox,IE10,Oprea,Safari,服务器一般使用铬阴极射线管来运行服务器序列,通过Chrome浏览器与客户端进行测试。服务器终端分别使用2和3操作Web浏览器。程序结束后,Web浏览器连接到WebSocket。它通过将连接状态更改为`WebSocket`。WebSocket提供的数据发射方法提供了一种允许用户定义的方法。
3 结束语
使用WebSocket实时发送消息的服务器,能够高效和简洁的解决服务器和服务器之间的连接问题。并建立节点.js,使节点.js的单向调度不会发生干扰。
因其使用特性,如果节点.js性能变得异常,它将被磨损消耗。因此几十个js节点并接在WebSocket中的操作系统是好的,能够进行实时信息传递。并且这个http连接由任何一方所有的传输过程都是实时的,这就大大缩短了传输时间。与传统的解决方案ajax相比,其优势特点很明显。WebSocket协议系统能实时进行互联网推送消息,并随着HTML5技术的迅速发展,相信WebSocket技术肯定会得到更广泛的应用。