javascript – 与查询参数持续连接的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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...