我想从服务器调用特定客户端,而不是向所有客户端广播.问题是我在一些AJAX请求的范围内(在.aspx代码后面说),而不是在Hub或PersistentConnection中,所以没有Clients属性 - 而且那个调用ajax(jquery)的客户端不是客户端我想发送信号消息!
现在,我有一个在JS页面加载上调用的集线器,它将新客户端注册到服务器静态列表中,所以我有客户端Guids.但是不知道如何使用它从服务器向特定客户端发送消息.
dav*_*owl 44
查看最新文档:
持久连接 - https://github.com/SignalR/SignalR/wiki/PersistentConnection
枢纽 - http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-server
小智 24
$('#sendmessage').click(function () {
// Call the Send method on the hub.
chat.server.send($('#displayname').val(), $('#message').val(), $.connection.hub.id);
// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});
Run Code Online (Sandbox Code Playgroud)
在服务器端发送客户端的id并响应该id
public void Send ( string name , string message , string connID )
{
Clients.Client(connID).broadcastMessage(name , message);
}
Run Code Online (Sandbox Code Playgroud)
Nad*_*uli 10
每次向中心服务器发送请求时,您的请求都会有不同的连接ID,因此,我添加了一个静态哈希表,其中包含一个用户名 - 不会连续更改,并且每次都会返回信号r的连接ID您连接后,将更新连接ID
$.connection.hub.start().done(function () {
chat.server.registerConId($('#displayname').val());
});
Run Code Online (Sandbox Code Playgroud)
并在服务器代码中:
public class ChatHub : Hub
{
private static Hashtable htUsers_ConIds = new Hashtable(20);
public void registerConId(string userID)
{
if(htUsers_ConIds.ContainsKey(userID))
htUsers_ConIds[userID] = Context.ConnectionId;
else
htUsers_ConIds.Add(userID, Context.ConnectionId);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78592 次 |
| 最近记录: |