我Connect()在IConnected接口上实现该方法以向正确的组添加新连接.除了一件事之外,这很有效:为了将用户添加到正确的组,我需要发送一个值以在此方法中读取.我尝试将属性添加到客户端集线器:
var uIHub = $.connection.uIHub;
uIHub.SessionType = "Edit";
Run Code Online (Sandbox Code Playgroud)
但是这个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);
Run Code Online (Sandbox Code Playgroud)
Caller.SessionType 永远是空的.
关于如何解决这个问题的任何建议?
Ale*_*ger 39
我通过将我的信息添加到查询字符串来解决这个问题,该查询字符串可用于该IConnected.Connect()方法.
在.NET客户端上,您将查询字符串传递给HubConnection:
var connection = new HubConnection("http://localhost:8080/", "myInfo=12345");
Run Code Online (Sandbox Code Playgroud)
在JS客户端上,qs在开始连接之前设置属性:
$.connection.hub.qs = "myInfo=12345";
Run Code Online (Sandbox Code Playgroud)
然后,您可以在Connect()方法中访问服务器上的此信息:
var myInfo = Context.QueryString["myInfo"];
Groups.Add(Context.ConnectionId, myInfo);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8670 次 |
| 最近记录: |