WebSocket开发记录(1)

本文记录了使用Python开发WebSocket的历程,从连接、握手到通信的细节,包括客户端连接状态、Sec-WebSocket-Key的处理、协议版本以及关闭操作。通过理解协议标准,实现了长连接的WebSocket通信。
摘要由CSDN通过智能技术生成

一、说明

WebSocket,HTTP协议的一部分,在原有的短连接或者说一问一答的基础上增加的长连接服务,算是补充。
可用来干什么?
在web客户端和Web服务器端建立长连接形式,类似于Socket的链接,可以任意收发信息。
开发过程
因项目需求使用python开发,因为Web端就是用Django开发的,所以。。。

  1. python上开发WebSocket,网上查到的是使用dwebsocket库来开发,网上学习了一种使用方式,发现有很多异常无法处理,而且网上的样例实在匮乏,再加上我Web开发短板太多,或者对我而言理解它的使用方式太慢。综上,弃用
    dwebsocket库样例连接

  2. WebSocket在python上的另一种开发方式,直接使用Socket开发,我们很清楚的知道WebSocket是建立在HTTP上使用TCP协议做的开发,基于此我们完全可以使用Socket来进行WebSocket的开发,区别于C/S模式的开发在于WebSockt的协议上,需要遵循它的标准协议进行连接和通信。以下我将叙述使用该方式的开发过程


二、开发参考链接

非常感谢如下两个链接博客作者对我的帮助:
JetpropelledSnake21 :Python Web学习笔记之WebSocket通信过程与实现
详细说明了WebSocket协议使用Socket开发的过程,博客写的非常棒,但同时有一些细节确实困扰了我很长时间。
CoderFocus :原来你是这样的WebSocket
详细说明了通过底层抓包分析WebSocket的过程,解决了很多细节问题。


三、开发过程

3.1 连接

客户端程序如下

<script type="text/javascript">
        var ws;
        function startWS() {
   //连接
            console.log('will connect:', document.getElementById('Server_IP').innerHTML);
            ws = new WebSocket('ws://' + document.getElementById('Server_IP').innerHTML + ':9913');
			//9913为创建socket的端口号,可以和网页端口号不同
            ws.onopen = function (msg) {
   
                console.log('WebSocket opened');
            };
            ws.onmessage = function (message) {
   //接收消息
                console.log
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值