Я создал настраиваемые методы SignalR для перенаправления пользователей, если они хотят присоединиться к группе, у которой уже есть 2 члена. Кажется, что все работает нормально, кроме метода перенаправления.Пользовательский метод SignalR для перенаправления
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 установлен на "тестирование", но клиент не попадет.