websocket 发送消息
时间: 2023-07-05 10:25:13 浏览: 94
Spring和Websocket相结合实现消息的推送
在使用 WebSocket 发送消息时,你需要使用 WebSocket 对象的 `send` 方法。这个方法接收一个字符串参数,表示要发送的消息。例如:
``` python
import websocket
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocket()
ws.connect("ws://localhost:8000/")
ws.send("Hello, world!")
ws.close()
```
这个示例代码创建了一个 WebSocket 客户端,连接到本地的 8000 端口。它发送了一条消息 "Hello, world!" 到服务器,并且关闭了连接。
如果你是在一个 WebSocket 服务器中发送消息,你需要在接收到客户端连接请求时,将 WebSocket 对象保存下来。然后,在处理客户端发送的消息时,你可以使用保存下来的 WebSocket 对象的 `send` 方法,将消息发送回客户端。例如:
``` python
import websocket
class MyWebSocketServer():
def __init__(self, host, port):
self.host = host
self.port = port
self.clients = []
def on_message(self, ws, message):
# 处理客户端发送的消息
for client in self.clients:
client.send(message)
def on_error(self, ws, error):
print("Error: ", error)
def on_close(self, ws):
self.clients.remove(ws)
print("Connection closed")
def on_open(self, ws):
self.clients.append(ws)
print("Connection opened")
def start(self):
websocket.enableTrace(True)
ws_server = websocket.WebSocketServer((self.host, self.port))
ws_server.on_message = self.on_message
ws_server.on_error = self.on_error
ws_server.on_close = self.on_close
ws_server.on_open = self.on_open
ws_server.run_forever()
if __name__ == "__main__":
server = MyWebSocketServer("localhost", 8000)
server.start()
```
这个示例代码创建了一个 WebSocket 服务器,监听本地的 8000 端口。当客户端连接到服务器时,服务器会将客户端的 WebSocket 对象保存在 `self.clients` 列表中。当客户端发送消息时,服务器会遍历 `self.clients` 列表,并将消息发送回每个客户端。当客户端断开连接时,服务器会将客户端的 WebSocket 对象从 `self.clients` 列表中移除。
阅读全文