gpt4 book ai didi

javascript - SignalR 自定义重定向方法

转载 作者:行者123 更新时间:2023-12-03 07:29:51 25 4
gpt4 key购买 nike

我已经制作了 SignalR 自定义方法来重定向用户,如果他们想要加入已经有 2 名成员的组。除了重定向方法之外,一切似乎都工作正常。

ChatHub.cs:

namespace SignalRChat
{
public class ChatHub : Hub
{
static string test2 = "";
public static Dictionary<string, int> rooms = new Dictionary<string, int>();
public void Test(string groupName)
{
if (!rooms.ContainsKey(groupName))
{
rooms.Add(groupName, 1);

}
else if(rooms[groupName] != 2)
{
rooms[groupName] = 2;
}
else
{
test2 = "testing";
Redirect();
}

}

public Task Redirect()
{
return Clients.Caller.redirectTo();
}

public Task JoinGroup(string groupName)
{
return Groups.Add(Context.ConnectionId, groupName);

}
}
}

脚本:

var chat2 = $.connection.chatHub;
$.connection.hub.start().done(function () {
chat2.server.test(roomId);

chat2.client.redirectTo = function () {
window.location.replace("http://stackoverflow.com");
}

chat2.server.joinGroup(roomId);
});

当组中已有 2 个客户端时,test2 设置为“测试”,但客户端不会重定向。

最佳答案

将脚本更改为:

var chat2 = $.connection.chatHub;
// var roomId = "R1" <-- I added this for testing

chat2.client.redirectTo = function () {
window.location.replace("http://stackoverflow.com/questions/35848709/signalr-custom-method-to-redirect#35857376");
}

$.connection.hub.start().done(function () {
chat2.server.joinGroup(roomId);
chat2.server.test(roomId);
});

注意:在您的 Test 方法中,逻辑表示仅当 rooms 字典包含给定的 roomname< 时才会运行重定向/em> 与该 roomname 对应的 int 值为“2”。可能不是你真正计划的逻辑。

为了测试,我添加了支持的代码:

  public static Dictionary<string, int> rooms = new Dictionary<string, int>();
public void Test(string groupName) // <-- I sent "groupName: R1" from js
{
rooms["R1"] = 2;
if ...
}

关于javascript - SignalR 自定义重定向方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35848709/

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