美文网首页Python新世界python热爱者
聊天工具很高大上吗?Python实现一个最简单websocket

聊天工具很高大上吗?Python实现一个最简单websocket

作者: 48e0a32026ae | 来源:发表于2018-11-02 16:22 被阅读5次

    WebSocket 简介

    WebSocket 是一个标准化协议,构建在 TCP 之上,能够在客户端和服务端之间建立一个全双工的通信渠道。这里的客户端和服务端通常是用户浏览器和 Web 服务器。在 WebSocket 诞生之前,如果我们想保持这样的一个长连接,

    如果你感觉学不会?莫慌,小编推荐大家加入群,

    前面516中间107后面834,群里有志同道合的小伙伴,

    互帮互助,还可以拿到许多视频教程!

    就需要使用诸如长轮询、永久帧、Comet 等技术。而现今 WebSocket 已经得到了所有主流浏览器的支持,我们可以使用它开发出在线聊天室、游戏、实时仪表盘等软件。

    安装websockets第三发库

    pip install websockets

    pip install asyncio

    实现websocket服务端服务

    import asyncio

    import websockets

    @asyncio.coroutine

    def echo(websocket, path):

    message = yield from websocket.recv()

    print('recv', message)

    server_data = "收到服务端的数据"

    yield from websocket.send(server_data)

    start_server = websockets.serve(echo, 'localhost', 8765)

    asyncio.get_event_loop().run_until_complete(start_server)

    asyncio.get_event_loop().run_forever()

    实现websocket客户端服务

    编写一个index.js文件,具体代码如下:

    var ws = new WebSocket("ws://localhost:8765/echo")

    //建立web socket 连接成功触发事件

    ws.onopen = function () {

    ws.send("客户端发送的数据")

    console.log("数据发送中....")

    };

    //接收 web socket 服务端数据时触发事件

    ws.onmessage = function (evt) {

    var received_msg = evt.data

    console.log(received_msg)

    };

    //断开web socket 连接成功触发事件

    ws.onclose = function () {

    console.log("连接已断开")

    };

    编写一个index.html文件,引入上面编写的js文件,来测试一下websocket的功能。

    websocket

    在浏览器打开index.html文件,打开调试窗口,刷新页面。可以看到websocket客户端与服务端各自输出的日志。

    客户端日志:

    服务端日志:

    相关文章

      网友评论

        本文标题:聊天工具很高大上吗?Python实现一个最简单websocket

        本文链接:https://www.haomeiwen.com/subject/sxecxqtx.html