<!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服务端
- 定期发送消息
- 接收服务端消息
- 处理连接事件