要重定向的 SignalR 自定义方法
SignalR custom method to redirect
我已经制作了 SignalR 自定义方法,如果用户想加入已经有 2 个成员的组,可以重定向用户。除了重定向方法外,一切似乎都工作正常。
聊天中心.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
方法中,逻辑表明仅当字典包含给定的房间名并且与该房间名对应的 int 值为"2"时rooms
重定向才会运行。可能不是你真正计划的逻辑。
为了进行测试,我添加到支持的代码中:
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自定义方法
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 如何用Typescript用自定义方法实现类数组
- $resource上带有.then()函数的角度自定义方法导致错误
- 如何将原型用于自定义方法和对象操作
- 续集返回未定义的模型自定义方法
- jQuery 在自定义方法中使用 if 语句进行验证
- 为什么Kendo DataSource使用自定义方法进行端点通信总是发送相同的对象进行删除
- jQuery验证插件-比较两个选择下拉列表的自定义方法
- 如何在Javascript中向存储类添加自定义方法
- jQuery验证自定义方法规则和具有动态名称的消息
- 要重定向的 SignalR 自定义方法
- 使用按值删除元素的自定义方法扩展数组
- AngularJS:$resource未调用自定义方法
- 如何在网格.js中添加自定义方法
- 如何使用自定义方法和字段扩展沙盒 sinon
- 自定义方法不需要jquery验证
- 使用lightswitch html客户端中的自定义方法将数据保存到sql server中
- 自定义方法以及web-dev中构造函数和原型的有用性
- 无法在主干模型上调用自定义方法