在WebSocket通信中,服务端可以通过以下几种方式主动发送信息给客户端:
使用`socket.send()`方法
一旦WebSocket连接成功,服务端可以获得一个客户端的`socket`对象。
当需要发送数据时,可以直接调用`socket.send()`方法将数据发送给客户端。需要注意的是,这个`socket`对象必须保持有效状态。
在.NET Core中使用`WebSocket.SendAsync()`方法
在.NET Core中,可以使用`WebSocket`类的`SendAsync`方法向客户端发送消息。
示例代码如下:
```csharp
WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
ArraySegment await webSocket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); ``` 利用Python的`websockets`库,可以轻松构建一个支持WebSocket推送的HTTP服务器。 示例代码如下: ```python import asyncio import websockets async def handler(websocket, path): while True: await websocket.send("Hello from server!") await asyncio.sleep(1) start_server = websockets.serve(handler, "localhost", 8765) asyncio.get_event_loop().run_until_complete(start_server) asyncio.get_event_loop().run_forever() ``` Spring Boot已经对WebSocket技术实现了自动配置和版本管理,只需导入相关标签即可。 在后端工具类中,可以创建一个WebSocketServer类来记录连接的客户端,并处理客户端发来的数据和往客户端发送数据。 示例代码如下: ```java @Component @ServerEndpoint(value = "/websocket/{id}") public class WebSocketServer { private static int onlineCount = 0; private static ConcurrentHashMap @OnOpen public void onOpen(@PathParam(value = "id") String id, Session session) { this.session = session; this.id = id; webSocketSet.put(id, this); } public void sendMessage(String message) { for (WebSocketServer ws : webSocketSet.values()) { ws.session.getAsyncRemote().sendText(message); } } } ``` 通过以上几种方法,服务端可以在WebSocket连接建立后,根据需要主动发送信息给客户端。选择哪种方法取决于具体的应用场景和使用的编程语言。使用Python的websockets库
在Spring Boot中集成WebSocket