Python新世界python热爱者

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

2018-11-02  本文已影响5人  48e0a32026ae

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客户端与服务端各自输出的日志。

客户端日志:

服务端日志:

上一篇下一篇

猜你喜欢

热点阅读