Подтвердить что ты не робот

SignalR отправить сообщение на single connectionId

У меня есть веб-сайт asp.net classic. ive получила базовую функциональность SignalR (где один клиент отправляет сообщения остальным клиентам). но теперь я хочу отправлять сообщения только определенным идентификаторам соединений.

my Hub:

**    [HubName("chatHub")]
    public class ChatHub : Hub 
    {
        public static List<string> messages = new List<string>();

        public void GetServiceState()
        {
            Clients.updateMessages(messages);
        }

        public void UpdateServiceState()
        {
            messages.Add(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));

            Clients.updateMessages(messages);
        }

    }**

Код Asp:

        <script type="text/javascript">
            $(function () {
                // creates a proxy to the health check hub

                var healthCheckHub = $.connection.chatHub;
                console.log($.connection.hub)
                // handles the callback sent from the server
                healthCheckHub.updateMessages = function (data) {
                    $("li").remove();

                    $.each(data, function () {
                        $('#messages').append('<li>' + this + '</li>');
                        console.log($.connection);
                    });
                };

                $("#trigger").click(function () {
                    healthCheckHub.updateServiceState();
                });

                // Start the connection and request current state
                $.connection.hub.start(function () {
                    healthCheckHub.getServiceState();
                });


            });

Проблема в том, что я действительно не знаю, как отправить один конкретный идентификатор Connection с концентратором, так как Clients.updateMessages(сообщения); отправлять сообщения всем им. как я могу это решить?

P.S: ive уже посмотрел: Отправить сообщение сервера подключенным клиентам с Signalr/PersistentConnection

и http://riba-escapades.blogspot.dk/2012/05/signalr-send-messages-to-single-client.html

что не сработало.

4b9b3361

Ответ 1

Ну, вы можете отправить сообщение одному клиенту из концентратора, например:

Clients.Client(someConnectionIdIWantToSendToSpecifically).doSomething();

Фокус в том, что вам нужно знать идентификатор соединения, к которому вы хотите отправить сообщение. Более конкретно, вы, вероятно, захотите узнать логическую идентичность того, что вы хотите отправить сообщение, так как этот логический идентификатор может иметь несколько соединений или отбрасываться и повторно соединяться под совершенно другим идентификатором соединения. Сопоставление соединений с логическими тождествами - это то, что SignalR оставляет до самого приложения.