2016-05-27 16 views
1

Ich begann mit WebSocketSharp, um einen einfachen WebSocket Server zu erstellen. Alles funktioniert gut mit diesem einfachen Code:Wie sende ich Daten vom Web-Socket-Server zum Client?

var service = new WebSocketCustomerImageService(); 

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

Service-Klasse:

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

Dies funktioniert gut, der Server antwortet, wenn der Client jede Nachricht sendet, aber jetzt möchte ich der Server eine Nachricht senden ohne dass der Kunde etwas senden muss. Die Send() Methode scheint nur auf der WebSocketBehavior Klasse verfügbar zu sein, und ich installiere diese WebSocketCustomerImageService Klasse nicht direkt.

Wie kann auf die erstellte Instanz zugegriffen werden, um die Send()-Methode zu verwenden oder was ist der richtige Weg, um dies zu erreichen?

Antwort

2

Ok löste es mit:

serverSocket.WebSocketServices["/customerImageService"].Sessions.Broadcast("My data"); 

Dieser sendet "My data" an alle Clients auf /customerImageService

hören
Verwandte Themen