gpt4 book ai didi

c# - SignalR 将消息发送到单个 connectionId

转载 作者:可可西里 更新时间:2023-11-01 07:43:32 24 4
gpt4 key购买 nike

我有一个 asp.net 经典网站。我已经获得了 SignalR 的基本功能(其中一个客户端向其余客户端发送消息)。但现在我只想将消息发送到特定的 connectionsID。

我的中心:

**    [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();
});


});

问题是我真的不知道如何使用 hub 发送到一个特定的 ConnectionID,因为 Clients.updateMessages(messages);向所有人发送消息。我该如何解决这个问题?

P.S:我已经看过了:Send server message to connected clients with Signalr/PersistentConnection

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

那没有用。

最佳答案

好吧,您可以像这样从集线器向单个客户端发送消息:

Clients.Client(someConnectionIdIWantToSendToSpecifically).doSomething();

诀窍是您需要知道要将消息发送到的连接 ID。更具体地说,您可能也想知道要发送消息的事物的逻辑身份,因为该逻辑身份可能有多个连接,或者已经断开并在完全不同的连接 ID 下重新连接。将连接映射到逻辑标识是 SignalR 留给应用程序本身的事情。

关于c# - SignalR 将消息发送到单个 connectionId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13348654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com