Python WebSocket 教程:从零开始

本篇文章介绍了 Python 中 WebSocket 的应用,适合 Python 初学者和想要了解 WebSocket 的开发者阅读。

用 Apifox,节省研发团队的每一分钟

Python WebSocket 教程:从零开始

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

Python 中实现 WebSocket 服务

Python WebSocket 教程
Python 

今天带大家来通过 Python 来实现 WebSocket 服务。

安装 Tornado 库

我们需要使用 pip 进行库的安装:

pip install tornado

Python 实现 WebSocket

我们可以在 Python 中使用 Tornado 进行 WebSocket 服务的实现~

import tornado.ioloop
import tornado.web
import tornado.websocket
import time

class WebSocketHandler(tornado.websocket.WebSocketHandler):
    def open(self):
        print("open success")
        # 定时器,每秒向前端发送一次数据
        self.timer = tornado.ioloop.PeriodicCallback(self.send_data, 1000)
        self.timer.start()

    def on_close(self):
        self.timer.stop()

    def send_data(self):
        # 向前端发送当前时间
        self.write_message('Now is' + str(time.time()))

application = tornado.web.Application([
    (r'/', WebSocketHandler),
])

if __name__ == '__main__':
    application.listen(3001)
    tornado.ioloop.IOLoop.instance().start()

该代码创建了一个名为 WebSocketHandler 的类, 继承 tornado.websocket.WebSocketHandler. 这个类实现了开启,关闭以及消息接收方法。

运行代码

在终端中输入:

python server.py

我们可以看到,WebSocket 服务的地址为:

ws: //localhost:3001

前端页面连接 WebSocket

页面编写

我们需要创建一个 index.html,并写入以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script>
    window.onload = () => {
        if ('WebSocket' in window) {
            // 创建websocket连接
            let ws = new WebSocket('ws://127.0.0.1:3001/websocket');
            // 成功连接的时候推送一条消息,此时服务端就可以开始推送数据了
            ws.onopen = () => {
                console.log('websocket success---');
                ws.send('success');
            }
            ws.onmessage = (message) => {
                let data = message.data;
                console.log('get websocket message---', data);
            }
            ws.onerror = () => {
                console.error('websocket fail');
            }
        } else {
            console.error('dont support websocket');
        };
    };
</script>

</head>
<body>
  
</body>
</html>

启动页面

在 index.html 右键,并打开此文件:

Python WebSocket 教程
打开文件

查看效果

可以看到后端先接收到前端的信息,open 建立成功:

然后建立连接后,后端一直在为前端输出信息。

Python WebSocket 教程
查看效果

Apifox 调试 WebSocket 服务

如果你正在编写 WebSocket 服务并需要进行调试,我建议你使用一些很棒的 API 调试工具,如 Apifox,这款工具可以完美调试 WebSocket 服务~

谷歌插件

Apifox 有 Web端 和 客户端,如果你使用的是 Web端,想要调试本地服务,需要安装 Apifox 的 谷歌插件。

欢迎体验一下,完全免费的哦:在线使用 Apifox

Python WebSocket 教程
Apifox 谷歌插件

新建 WebSocket 请求

WebSocket 是客户端和服务端之间的长链接,因此你需要在 Apifox 中创建一个 WebSocket 请求,以便跳转到 Apifox 界面并填写相应的请求信息。

  • 点击创建按钮
  • 填入 WebSocket 服务的地址
  • 可以选择填写 Message 和 Params
Python WebSocket 教程
新建 WebSocket 请求

Message 和 Params

Message

在 Message 中,你可以填写要传递到服务端的信息。服务端将接收你发送的信息。

Python WebSocket 教程
Message

Params

在传输过程中,你也可以携带参数,可以通过在地址上添加查询参数完成,可以携带的数据类型包括:

  • string
  • integer
  • number
  • array
Python WebSocket 教程
Params

保存请求

写完所需信息之后,可以点击 保存按钮,进行保存,方便下次可继续调用。

Python WebSocket 教程
保存请求

连接、发送 WebSocket 请求

连接 WebSocket 服务

我们想要跟服务端进行 WebSocket 通信,就需要先建立一个 WebSocket 连接,我们只需要点击 连接 按钮。

Python WebSocket 教程
建立 WebSocket 连接

连接成功之后,Apifox 有成功的提示。

Python WebSocket 教程
连接成功

服务端那边也会因为连接成功,而做出响应。

发送 WebSocket 请求

接着我们就可以跟服务端进行 WebSocket 通信了。

我们可以使用 Apifox 点击发送按钮向服务端进行发送 Message、Params。

Python WebSocket 教程
发送 WebSocket 请求

与 WebSocket 服务通信

发送之后,服务端也可以向客户端发送信息。

例如我设置服务端每秒向客户端发送当时的时间戳。

这就是 Apifox 的 WebSocket 功能,非常方便。

Python WebSocket 教程
与 WebSocket 服务通信

关于 Apifox

欢迎体验一下,完全免费的哦:在线使用 Apifox

Apifox 是一个全面的 API 管理平台,支持以下主要功能:

  • API创建和维护: 提供可视化的接口建模工具,使团队可以轻松地创建和维护 API。
  • API发布和管理: 提供 API 发布工具,使 API 的开发人员可以方便地发布 API,并提供 API 管理工具,以便跟踪 API 的使用情况。
  • API请求和响应管理: 提供 API 请求和响应管理,包括日志记录、性能监视等,以确保 API 请求和响应的质量和可靠性。
  • API模拟和测试: 提供模拟数据模板和测试工具,帮助开发人员在 API 开发和维护过程中进行测试和调试。
  • API文档生成: 自动生成 API 文档,方便团队成员查看和理解API的功能和使用方式。
  • 团队协作功能: 提供多用户功能,团队成员可以在 Apifox 平台上协同工作,共同维护和发布 API。
Python WebSocket 教程
Apifox