我使用信号R 1.0和c#
问题大部分时间是使用IE(第10版),有时使用chrome(第28版)。
我的客户端方法没有被执行。
我有聊天功能和页面加载
$(document).ready(function(){
//here i call server method to create group between two users
});
chat.client.groupcreated = function(){} //this is not invoked
在服务器端我写Client.groupcreated()
它在FF中起作用。更有趣的是,如果我在服务器端的cs代码中设置了一个断点,它在IE中的工作也是
答案 0 :(得分:0)
Oppss ......我犯了一个愚蠢的错误
在创建组的服务器方法中,我正在做类似下面的事情
Groups.Add(connectionid1,groupname);
Groups.Add(connectionid2,groupname);
Clients.Group(strGroupName).hellworld(); //no users added yet to the group while this line executes
上述代码的问题是向信号器组添加成员实际上是异步的,因此立即向该组发送消息将不起作用,因为组的添加成员可能尚未完成。
<强>解决方案强>
Groups.Add(connectionid1, groupname).ContinueWith(t =>
Groups.Add(connectionid2, groupname).ContinueWith(t2 =>
Clients.Group(groupname).helloworld());
在调用客户端方法
之前等待任务完成顺便说一句,感谢您发表评论