SignalR - senden parameter OnConnected?

Habe ich Folgendes JS arbeiten:

var chat = $.connection.appHub;

Meine app hat einen einzigen hub AppHub verarbeitet zwei Arten von Benachrichtigungen - Chat und Other. Ich bin mit einem single-hub-da brauche ich Zugang zu allen Anschlüssen zu allen Zeiten.

Ich muss in der Lage sein zu sagen OnConnected welche Art es ist, über etwas wie den folgenden:

[Authorize]
public class AppHub : Hub {
    private readonly static ConnectionMapping<string> _chatConnections =
        new ConnectionMapping<string>();
    private readonly static ConnectionMapping<string> _navbarConnections =
        new ConnectionMapping<string>();
    public override Task OnConnected(bool isChat) { //here
        string user = Context.User.Identity.Name;
        if (isChat){
            _chatConnections.Add(user, Context.ConnectionId);
            _navbarConnections.Add(user, Context.ConnectionId);
        } else{
            _navbarConnections.Add(user, Context.ConnectionId);
        }  
    }
}

Nutzung würde im Idealfall so etwas wie dieses:

var chat = $.connection.appHub(true);

Wie kann ich den übergeben parameter an den hub von javascript?

Update:

SendMessage:

 //will have another for OtherMessage
 public void SendChatMessage(string who, ChatMessageViewModel message) {
        message.HtmlContent = _compiler.Transform(message.HtmlContent);
        foreach (var connectionId in _chatConnections.GetConnections(who)) {
            Clients.Client(connectionId).addChatMessage(JsonConvert.SerializeObject(message).SanitizeData());
        }
    }

InformationsquelleAutor RobVious | 2013-12-21

Schreibe einen Kommentar