如何从 web socket 服务器向客户端发送数据?
How to send data from web socket server to client?
我开始使用 WebSocketSharp
创建一个简单的 WebSocket 服务器。这个简单的代码一切都很好:
var service = new WebSocketCustomerImageService();
var serverSocket = new WebSocketServer("ws://localhost:2000");
serverSocket.AddWebSocketService<WebSocketCustomerImageService>("/customerImageService");
serverSocket.Start();
服务class:
public class WebSocketCustomerImageService : WebSocketBehavior
{
protected override void OnMessage(MessageEventArgs e)
{
Send("Hello from the other side!");
}
}
这很好用,客户端发送任何消息时服务器都会响应,但现在,我希望服务器无需客户端发送任何消息即可发送消息。 Send()
方法似乎只能在 WebSocketBehavior
class 上使用,我没有直接实例化这个 WebSocketCustomerImageService
class.
如何访问创建的实例以使用 Send()
方法或实现此目的的正确方法是什么?
好的解决方法是:
serverSocket.WebSocketServices["/customerImageService"].Sessions.Broadcast("My data");
这会将 "My data"
发送到所有监听 /customerImageService
的客户端
我开始使用 WebSocketSharp
创建一个简单的 WebSocket 服务器。这个简单的代码一切都很好:
var service = new WebSocketCustomerImageService();
var serverSocket = new WebSocketServer("ws://localhost:2000");
serverSocket.AddWebSocketService<WebSocketCustomerImageService>("/customerImageService");
serverSocket.Start();
服务class:
public class WebSocketCustomerImageService : WebSocketBehavior
{
protected override void OnMessage(MessageEventArgs e)
{
Send("Hello from the other side!");
}
}
这很好用,客户端发送任何消息时服务器都会响应,但现在,我希望服务器无需客户端发送任何消息即可发送消息。 Send()
方法似乎只能在 WebSocketBehavior
class 上使用,我没有直接实例化这个 WebSocketCustomerImageService
class.
如何访问创建的实例以使用 Send()
方法或实现此目的的正确方法是什么?
好的解决方法是:
serverSocket.WebSocketServices["/customerImageService"].Sessions.Broadcast("My data");
这会将 "My data"
发送到所有监听 /customerImageService