gpt4 book ai didi

c# - Signalr - 无法读取服务器上的查询字符串

转载 作者:行者123 更新时间:2023-11-30 19:05:20 25 4
gpt4 key购买 nike

我要疯了。我完成了 chatHub 教程,一切正常。我连接到服务器。我可以向每个客户广播消息。

然后我尝试添加查询字符串,因为我想获得一些关于我的用户的信息,因为许多用户可以在同一个 session 中连接。

这是我的javascript

(function ($) {
// Declare a proxy to reference the hub.
var chat = $.connection.chatHub;
//chat.state.userName = "test";
//chat.qs = "userToken3=blablabla";
chat.qs = { 'uid' : '2541fdsf862d' };
//$.connection.chatHub.qs = {"userToken2" : 125457};
// Create a function that the hub can call to broadcast messages.
chat.client.broadcastMessage = function (name, message) {
// Html encode display name and message.
var encodedName = $('<div />').text(name).html();
var encodedMsg = $('<div />').text(message).html();
// Add the message to the page.
$('#discussion').append('<li><strong>' + encodedName
+ '</strong>:&nbsp;&nbsp;' + encodedMsg + '</li>');
};
// Get the user name and store it to prepend to messages.
//$('#displayname').val(prompt('Enter your name:', ''));
// Set initial focus to message input box.
$('#message').focus();
// Start the connection.
$.connection.hub.start({ 'uid': '2541fdsf862d' }).done(function () {
$('#sendmessage').click(function () {
// Call the Send method on the hub.
chat.server.send("user", $('#message').val());
// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});
});
})(jQuery);

如果我在此函数中设置断点时查看我的监视列表,我可以看到查询字符串“uid”已完美设置。

但是在服务器上,我无法读取参数。

public override Task OnConnected()
{
string name = Context.User.Identity.Name;
var caller = Clients.Caller;
var username = Clients.Caller.userName;
var queryString = Context.Request.QueryString;
var queryString2 = Context.QueryString;
var uid = Context.QueryString["uid"];
_connections.Add(name, Context.ConnectionId);

return base.OnConnected();
}

在这种情况下,uid 为空。如果我查看服务器上的发送方法:

[Authorize]
public void Send(string name, string message)
{
// Call the broadcastMessage method to update clients.
Clients.All.broadcastMessage(name, message);
var queryString = Context.Request.QueryString;
var context = Context;
}

uidqueryString 变量中不可用。

我的代码有什么问题?有人知道吗?

最佳答案

我刚刚找到了解决方案。这是因为我必须通过 $.connection.hub 而不是通过 chat.qs

传递查询字符串

所以,解决方案是

$.connection.hub.qs = { 'uid': '2541fdsf862d' };

关于c# - Signalr - 无法读取服务器上的查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22878954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com