首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从SignalR调用特定客户端

从SignalR调用特定客户端
EN

Stack Overflow用户
提问于 2011-10-24 15:47:30
回答 5查看 91.2K关注 0票数 73

我想从服务器调用特定的客户端,而不是广播到所有客户端。问题是我在一些AJAX请求的作用域中(比如说在.aspx代码中),而不是在集线器或PersistentConnection中,所以不要有Clients属性-而且进行ajax (jquery)调用的客户端不是我想要发送signalr消息的客户端!

现在,我有一个集线器,它在JS页面加载时被调用,它将新客户机注册到服务器静态列表中,所以我有客户机Guid。但是不知道如何将消息从服务器发送到特定的客户端。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-24 15:56:56

Stack Overflow用户

发布于 2013-03-23 06:14:25

代码语言:javascript
复制
$('#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();
});

在服务器端发送客户端的id和对该id的响应

代码语言:javascript
复制
  public void Send ( string name , string message , string connID )
  {
        Clients.Client(connID).broadcastMessage(name , message);
  }
票数 26
EN

Stack Overflow用户

发布于 2014-08-31 20:24:35

每次您向中心服务器发送请求时,您的请求将具有不同的连接id,因此,我添加了一个静态哈希表,其中包含一个不会连续更改的用户名和一个信号r的连接id,每次连接时,连接id都会更新。

代码语言:javascript
复制
 $.connection.hub.start().done(function () {
   chat.server.registerConId($('#displayname').val());
 });

在服务器代码中:

代码语言:javascript
复制
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);
    }
}
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7872589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档