带有查询参数Signalr永久连接。(Signalr persistent connection w

2019-08-17 22:50发布

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

    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(() =>
          {
          });

谁能告诉我怎样才能通过查询字符串PARAMS这个connecton这样我就可以在覆盖阅读它们,因为我似乎是打在这个砖墙。

干杯希望有人能帮助,

戴夫

Answer 1:

花鼓

   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



文章来源: Signalr persistent connection with query params.