首页 -> 数据分析

基于WebSocket的浏览器网页(Javascript)与服务器数据交互

流星雨 15 天前建立 •  20   
WebSocket的发明主要用来解决服务器不能主动向浏览器推送消息的问题,之前解决这个问题的方法都是浏览器定期轮询,主动向服务器查询有没有给自己的信息,这在多数情况下都会额外的占用和浪费资源,服务器不堪重负,消息实时性也不高。
WebSocket只是一种网络传输协议,在2011年成为标准,现在所有的浏览器都已经支持,是与Http完全不同的东西,但因为RFC 6455规定:“WebSocket设计为通过80和443端口工作,以及支持HTTP代理和中介”,从而使其与HTTP协议兼容,这样能通过大多数的代理和防火墙,就像使用http协议一样。
WebSocket与之前轮询技术的优势:
1、保持连接状态。与HTTP不同的是,Websocket需要先建立连接,这就使得其成为一种有状态的协议,之后通信时可以省略部分状态信息,服务器是知道你就是之前登录的那个客户端的。而Http每次都需要携带身份认证等状态信息。
2、占用资源更少。除了因为它每次传输的额外信息较少外,因为不需要轮询,大大减少对服务器的压力。
3、实时性更强。轮询无论如何都会有一个时间间隔,而WebSocket是实时推送的。
4、可以跨域传输。javascript代码连接的WebSocket服务器可以和当前页面不是一个地址,这样就可以灵活的架设WebSocket服务器,多个网站都可以使用同一个WebSocket服务器。
5、能传输二进制数据。

这是别人写的一个介绍:
https://www.ruanyifeng.com/blog/2017/05/websocket.html

php写的一个WebSocker服务器,只要有php环境就可以迅速搭建。
https://www.workerman.net

python写的一个服务器端,比较简洁,实现了大部分常用功能。
优势:
1、Python2 and Python3 support;
2、一个文件搞定,比较简洁。
https://github.com/Pithikos/python-websocket-server


workerman-json-rpc是一个以workerman作为服务器容器,使用Json作为协议简单高效的RPC远程调用框架。
https://www.workerman.net/workerman-jsonrpc

WebSocket 

回复

登录发表 or 还没有账号?去注册