Python 运维百人计划程序员

初识websocket

2017-12-08  本文已影响107人  在你的世界路过

前言:工作中在验证前端页面展示数据时,接触到websocket这一概念,这里粗略记录下关于websocket的理解和常用方式。

(1)什么是websocket?

命名:看起来好像和socket有某种关系,但是根据查询了解到,WebSocket只是借用了这一概念,使用方面,完全两个东西,大概因为Socket早在它之前已经是一个深入人心的概念。

官方解释:WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。--百度百科

简单理解:WebSocket是一种为了满足浏览器与服务器端实时数据交互需要而制订的一种新的网络协议。

可以把WebSocket想象成HTTP,同为应用层协议,在与服务器通信过程扮演角色类似。但是WebSocket是基于TCP的应用层协议,只需要一次连接(握手),以后传输数据不需要重新建立连接,可以直接发送数据,这里就区分了和http协议的不同(每次都要重新请求,服务端返回数据后结束)。javascript中常用的ajax技术所做的工作也是完成前端和服务器的数据交互,但是Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以相互推送信息,更为灵活的支撑业务需要。

(2)前端常用方式?

前端比较常用的是在javascript中使用WebSocket,建立与服务端WebSocket服务的通信,从而请求服务端或者监听服务端推送数据消息,达到实时数据交互的需要。

一个参考网上使用python+bottle+javascript的例子

前端:

websocket后端:

(3)调试模拟websocket通信

Chrome F12查看websocket数据交互过程:

$1$ 在你得知用到websocket的界面,进入调试模式,刷新界面,选择2-“Network->WS”后看到的1-Name下面一些会话就是正在通信的websocket连接;

$2$ 选择你的一个websocket会话可以在3-Frames中查看当前数据(Receive或者Send)

$3$ Headers里面是websocket请求的URL和头

(4)关于websocket自己摸索的一些可扩展的思路

基于python脚本或者java代码的一个websocket后台服务+javascript或者python实现websocket客户端+shell脚本

一个简易查看后台日志的定制工具

一个后台服务监控报警功能

...(想一万个不如尽力做好一个)

除了这些还得有服务器一些权限吧,会shell脚本吧,懂业务吧?


参考文章:

文中例子来源

http://blog.csdn.net/qiuhuanmin/article/details/50719114

https://www.cnblogs.com/jinjiangongzuoshi/p/5062092.html

WebSocket 和 Socket 的区别

websocket规范 RFC6455 中文版

没事多查查咯~~

上一篇 下一篇

猜你喜欢

热点阅读