我有一个持久的连接,我想从一些种子信息开始使用查询参数.这是连接中的覆盖.
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
原文地址:https://www.jb51.cc/js/152852.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。