javascript - Signalr 与查询参数的持久连接。

标签 javascript asp.net signalr

我有一个持久连接,我想从使用查询参数的一些种子信息开始。这是连接中的覆盖。

    protected override Task OnConnected(IRequest request, string connectionId)
    {
        //GET QUERY PARAMS HERE

        return base.OnConnected(request, connectionId);
    }

现在我在 global.asax 文件中设置了路由,如下所示。

RouteTable.Routes.MapConnection("myconnection", "/myconnection");

客户端代码是这样的

var connection = $.connection('/myconnection');

connection.start()
          .done(() =>
          {
          });

有人能告诉我如何将查询字符串参数传递给此连接器,以便我可以在覆盖中读取它们,因为我似乎在这方面遇到了困难。

干杯,希望有人能提供帮助,

戴夫

最佳答案

中心

   var connection = $.connection('/myconnection');
    $.connection.hub.qs = "name=John"; //pass your query string

并在服务器上获取它

var myQS = Context.QueryString["name"];

要在 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];
        }
    }
} 

调用它:

var name = getQueryStringValueByKey("name");

持久连接

//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);
    }

这里是源代码,您可以在其中找到更多信息:https://github.com/SignalR/SignalR/blob/master/src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.core.js#L106

关于javascript - Signalr 与查询参数的持久连接。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15585100/

相关文章:

asp.net - VimService55.XmlSerializers.dll 中发生类型 'System.StackOverflowException' 的未处理异常

c# - 用字典绑定(bind)下拉列表

c# - 您可以将 Microsoft.AspNet.SignalR.Client 与 .NET Core (dnxcore) 一起使用吗

asp.net-mvc - 如何让 ASP.NET MVC 应用程序从 Azure 服务总线队列读取数据?

javascript - request.js 中的永久代理 - 如何检查它是否正常工作

javascript - jQuery - 将标签和复选框组限制为最大数量

c# - 使用查询字符串设置下拉列表中的选择

c# - SignalR 核心 - StatusCode : 404, ReasonPhrase : 'Not Found' , 版本 : 1. 1

javascript - 从浏览器控制台更改属性不会触发绑定(bind)

java - 使用相机后强行关闭