如何从网络套接字服务器向客户端发送数据?

And*_*res 2 sockets websocket websocket-sharp

我开始使用WebSocketSharp创建一个简单的 WebSocket 服务器。使用这个简单的代码,一切都很好:

var service = new WebSocketCustomerImageService();

var serverSocket = new WebSocketServer("ws://localhost:2000");
serverSocket.AddWebSocketService<WebSocketCustomerImageService>("/customerImageService");
serverSocket.Start();
Run Code Online (Sandbox Code Playgroud)

服务等级:

    public class WebSocketCustomerImageService : WebSocketBehavior
    {
        protected override void OnMessage(MessageEventArgs e)
        {
            Send("Hello from the other side!");
        }        
    }
Run Code Online (Sandbox Code Playgroud)

这很好用,服务器在客户端发送任何消息时做出响应,但是现在,我希望服务器发送消息而无需客户端发送任何内容。该Send()方法似乎只在WebSocketBehavior类上可用,我不直接实例化这个WebSocketCustomerImageService类。

如何访问创建的实例以使用该Send()方法或实现此目的的正确方法是什么?

And*_*res 5

好的解决了它:

serverSocket.WebSocketServices["/customerImageService"].Sessions.Broadcast("My data");
Run Code Online (Sandbox Code Playgroud)

这会发送"My data"给所有监听的客户端/customerImageService