Comment faire pour obtenir l'ID de connexion de signalR client sur le serveur?

J'ai besoin d'obtenir l'ID de connexion d'un client. Je sais que vous pouvez obtenir à partir du côté client à l'aide $.connection.hub.id. Ce que j'ai besoin est d'obtenir alors que dans un service web, j'ai les mises à jour des enregistrements dans une base de données, à son tour, l'affichage de la mise à jour sur une page web. Je suis nouveau sur signalR et stackoverflow, donc tout conseil serait apprécié. Sur mon client page web, j'ai ceci:

<script type="text/javascript">
    $(function () {
        //Declare a proxy to reference the hub. 
        var notify = $.connection.notificationHub;

        //Create a function that the hub can call to broadcast messages.
        notify.client.broadcastMessage = function (message) {
            var encodedMsg = $('<div />').text(message).html();//Html encode display message.
            $('#notificationMessageDisplay').append(encodedMsg);//Add the message to the page.
        };//end broadcastMessage

        //Start the connection.
        $.connection.hub.start().done(function () {
            $('#btnUpdate').click(function () {
                //call showNotification method on hub
                notify.server.showNotification($.connection.hub.id, "TEST status");
            });
        });


    });//End Main function


</script>

tout fonctionne jusqu'à ce que je veux mettre à jour la page à l'aide de signalR. Le spectacle de la notification de la fonction dans mon hub est ceci:

//hub function
public void showNotification(string connectionId, string newStatus){               
    IHubContext context = GlobalHost.ConnectionManager.GetHubContext<notificationHub>();
    string connection = "Your connection ID is : " + connectionId;//display for testing
    string statusUpdate = "The current status of your request is: " + newStatus;//to be displayed
    //for testing, you can display the connectionId in the broadcast message
    context.Clients.Client(connectionId).broadcastMessage(connection + " " + statusUpdate);
}//end show notification

comment puis-je envoyer le connectionid à mon service web?

J'espère que je ne suis pas en train de faire quelque chose d'impossible. Merci à l'avance.

  • Le deuxième extrait de code n'a pas de format pour une raison quelconque. Désolé
  • comment savez-vous quel client que vous souhaitez mettre à jour?
  • aussi: pourquoi êtes-vous manuellement la création d'un hub exemple, si vous allez utiliser GetHubContext?
  • Le hub instance I a été créer pour être honnête, était probablement une mauvaise décision. Je vois maintenant à partir de votre première question, la seule façon d'y parvenir serait d'avoir le client d'envoyer leurs connectionid avec la mise à jour. J'ai édité la question avec mon client page web code. Comment puis-je envoyer cette connectionid de cette façon?
  • dans le cas de votre exemple de code, vous n'auriez pas à envoyer l'id du tout, puisque vous pouvez utiliser les Clients.L'appelant; vous avez besoin de clarifier la séquence désirée des événements qu'il n'est pas clair ce que vos exigences sont
  • comment voulez-vous dire que je pouvais utiliser des clients.l'appelant?

InformationsquelleAutor Clint L | 2014-01-03