2017-10-02 4 views
0

Ich bin mit dem AutosoftDMS/SignalR-Swift Client, um mein Swift/iOS-App zu einem SignalR Server zu verbinden. Meine Frage ist, was ist die richtige Reihenfolge für die Verbindung, wenn der SignalR Server verschiedene "Räume" unterstützt?Verfahren zum Verbinden mit SignalR Server

Beispiel # 1:

let hubConnection = HubConnection(withUrl: <some SignalR server URL>) 

let chatHub = hubConnection.createHubProxy(hubName: "RoomChatHub") 

hubConnection.started = {  
    // the value 2 is some room identifier  
    self.chatHub.invoke(method: "RoomConnect", withArgs: [2]) 
} 

Das Problem bei diesem Beispiel ist die aufrufen keine Handler hat, die Nachrichten aus dem SignalR Server für Raum # 2 zu empfangen beginnen würde.

Beispiel # 2:

let hubConnection = HubConnection(withUrl: <some SignalR server URL>) 

let chatHub = hubConnection.createHubProxy(hubName: "RoomChatHub") 

chatHub.on(eventName: "RoomConnect") { (args) in 
    if let message = args[0] as? String { 
     print("Room Message: \(message)") 
    } 
} 

Das Problem bei diesem Beispiel ist die chatHub.on Methode hat kein Argument Parameter, die mir erlauben würden, zu spezifizieren, dass ich nur Nachrichten für Raum # will 2.

Wie Sie zu einem SignalR Server in einer Weise verbinden, dass ich ich möchte Nachrichten aus einem bestimmten Raum sagen kann?

Antwort

0

Ich denke, der beste Weg ist, Gruppen zu verwenden. Sie würden eine Gruppe für jeden Raum und Verbindungen zu den entsprechenden Gruppen erstellen.

+0

Aber das behandelt das zugrunde liegende Problem nicht. Ich müsste den Gruppennamen oder eine Kennung und die Art und Weise, wie die Client-API eingerichtet ist, übergeben. Ich kann diesen Gruppennamen übergeben, aber es gibt keinen Callback/Handler, um Nachrichten für diese Gruppe zu empfangen. –

Verwandte Themen