Python实现WebSocket发送数据到JavaScript实现的WebSocket接收端
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
var socket = new WebSocket("ws://127.0.0.1:5500");
socket.onopen = function() {
console.log('Connected!');
};
socket.onmessage = function(e) {
console.log('Received from Server: ', e.data);
};
socket.onclose = function() {
console.log('Disconnected');
};
</script>
</head>
<body>
</body>
</html>
这段JavaScript代码实现了一个简单的WebSocket客户端,用来连接ws://127.0.0.1:5500服务端。
具体逻辑如下:
- 使用WebSocket API创建一个WebSocket对象,指定服务端地址ws://127.0.0.1:5500
- 定义onopen回调处理连接打开事件,打印Connected日志
- 定义onmessage回调处理接收消息事件,打印接收到的消息
- 定义onclose回调处理连接关闭事件,打印Disconnected日志
- 当成功连接上服务端后,onopen回调会被触发
- 当接收到服务端发来的消息时,onmessage回调会被触发,并传入消息内容
- 如果服务端主动关闭连接,或连接发生错误断开,onclose回调会被触发
所以,这段代码实现了一个可以连接指定 WebSocket 服务端,接收并打印服务端消息的客户端。
当该JS代码运行在浏览器中时,如果服务端在5500端口提供WebSocket服务,则可以看到: - 控制台打印Connected,表示成功连接
- 接收到服务端发送的消息后,会打印消息内容
- 如果连接断开,会打印Disconnected
这个示例演示了如何使用JavaScript的WebSocket API编写一个基本的WebSocket客户端,包括: - 连接WebSocket服务端
- 接收消息
- 处理连接事件(开启、关闭)
import websocket
import threading
import time
# WebSocket服务器地址
websocket_server_url = "ws://127.0.0.1:5500"
# 连接打开时触发
def on_open(ws):
print("连接已打开")
# 收到消息时触发
def on_message(ws, message):
print("收到消息:", message)
# 发生错误时触发
def on_error(ws, error):
print("发生错误:", error)
# 连接关闭时触发
def on_close(ws):
print("连接已关闭")
# 开启线程定时发送消息
def send_message():
while True:
time.sleep(5) # 每5秒发送一次
data = "Hello from Python WebSocket!"
ws.send(data)
print("发送的消息:", data)
# 打开连接
ws = websocket.WebSocketApp(websocket_server_url,
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
if __name__ == "__main__":
# 开启线程定时发送消息
threading.Thread(target=send_message).start()
# 运行WebSocket服务
ws.run_forever()
这段代码实现了一个简单的WebSocket客户端,具体逻辑如下:
- 定义WebSocket服务器地址为ws://127.0.0.1:5500
- 定义4个回调函数:
- on_open: 连接打开时触发
- on_message: 收到消息时触发
- on_error: 发生错误时触发
- on_close: 连接关闭时触发
- 定义send_message函数,开启线程每5秒发送一条消息
- 实例化WebSocketApp,绑定前面定义的4个回调函数
- 调用on_open属性绑定连接打开事件的回调
- 如果是直接运行,则开启发送消息的线程
- 运行ws.run_forever()保持WebSocket连接
- 发送消息线程会定期发送消息,并在控制台打印发送的消息
- 当接收到服务端的消息时,on_message回调会被触发,并打印接收的消息
所以,这个代码实现了一个可以定期发送消息给服务端,同时也可以接收服务端消息的WebSocket客户端。
运行此代码,在控制台可以看到定期打印的发送消息,以及随机打印的接收消息。
这个示例演示了如何使用Python编写一个基本的WebSocket客户端,包括: - 连接WebSocket服务端
- 定期发送消息
- 接收服务端消息
- 处理连接事件
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbfghf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13