Com*_*Cat 11 javascript asp.net signalr
我有一个持久的连接,我想从查询参数的一些种子信息开始.这是连接中的覆盖.
protected override Task OnConnected(IRequest request, string connectionId)
{
//GET QUERY PARAMS HERE
return base.OnConnected(request, connectionId);
}
Run Code Online (Sandbox Code Playgroud)
现在我在global.asax文件中设置了我的路由,看起来像这样.
RouteTable.Routes.MapConnection("myconnection","/ myconnection");
客户端代码看起来像这样
var connection = $.connection('/myconnection');
connection.start()
.done(() =>
{
});
Run Code Online (Sandbox Code Playgroud)
有人能告诉我如何将查询字符串参数传递给这个连接,所以我可以在覆盖中读取它们,因为我似乎在这上面打砖墙.
干杯希望有人可以提供帮助,
戴夫
Mat*_*cic 34
花鼓
var connection = $.connection('/myconnection');
$.connection.hub.qs = "name=John"; //pass your query string
Run Code Online (Sandbox Code Playgroud)
并在服务器上获取它
var myQS = Context.QueryString["name"];
Run Code Online (Sandbox Code Playgroud)
要在javascript中访问您的查询字符串,您可以使用类似的东西
function getQueryStringValueByKey(key) {
var url = window.location.href;
var values = url.split(/[\?&]+/);
for (i = 0; i < values.length; i++) {
var value = values[i].split("=");
if (value[0] == key) {
return value[1];
}
}
}
Run Code Online (Sandbox Code Playgroud)
叫它:
var name = getQueryStringValueByKey("name");
Run Code Online (Sandbox Code Playgroud)
持续连接
//pass your query string
var connection = $.connection('/myconnection', "name=John", true);
protected override Task OnConnected(IRequest request, string connectionId)
{
//get the name here
var name = request.QueryString["name"];
return base.OnConnected(request, connectionId);
}
Run Code Online (Sandbox Code Playgroud)
以下是源代码,您可以在其中找到更多信息:https://github.com/SignalR/SignalR/blob/master/src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.core.js#L106
| 归档时间: |
|
| 查看次数: |
10402 次 |
| 最近记录: |