SignalR:如何将数据发送到 IConnected.Connect()

标签 signalr

我实现 Connect() IConnected上的方法界面以将新连接添加到正确的组。这很好用,除了一件事:为了将用户添加到正确的组,我需要发送一个值以在此方法中读取。我尝试向客户端中心添加属性:

var uIHub = $.connection.uIHub;
uIHub.SessionType = "Edit";

但无法从 Connect 访问方法:
if (string.IsNullOrEmpty(Caller.SessionType) || Caller.SessionType == "Edit") {
     sessionId = WAFContext.EditSession.SessionId.ToString();                
} else {
     sessionId = WAFContext.ViewSession.SessionId.ToString();
}
Groups.Add(Context.ConnectionId, sessionId);
Caller.SessionType始终为空。

关于如何解决这个问题的任何建议?

最佳答案

我通过将我的信息添加到查询字符串中解决了这个问题,该查询字符串可在 IConnected.Connect() 上找到。方法。

在 .NET 客户端上,您将查询字符串传递给您的 HubConnection :

var connection = new HubConnection("http://localhost:8080/", "myInfo=12345");

在 JS 客户端上,设置 qs开始连接之前的属性:
$.connection.hub.qs = "myInfo=12345";

然后您可以在Connect() 中的服务器上访问此信息。方法:
var myInfo = Context.QueryString["myInfo"];
Groups.Add(Context.ConnectionId, myInfo);

关于SignalR:如何将数据发送到 IConnected.Connect(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12473030/

相关文章:

asp.net - 如何在 SignalR2 中设置 Json 序列化器设置?

asp.net-mvc-3 - 如何让 SignalR 在 _Layout.cshtml 中工作?

javascript - 在 websocket 握手代码 : 400 期间无法连接 signalR 错误

signalr - 使用 SignalR 手动创建组

SignalR 服务总线主题名称冲突

inversion-of-control - SignalR with IoC (CaSTLe Windsor) - 集线器的生命周期是多少?

c# - SignalR 自主机连接重置

javascript - SignalR 身份验证 - 处理未授权的情况

javascript - 无法在 SignalR 中解析集线器

c# - 如何在返回任务的方法中调用异步方法?