我正在关注“从集线器外部通过集线器广播”,但我的客户端浏览器没有收到任何消息。也没有错误。就好像 signalR 在拉取 hubContext 并发送消息时不知道我的浏览器一样。
但是,当从客户端调用到集线器时,我的集线器确实按预期运行。
我的枢纽:
[HubName("myHub")]
public class MyHub : Hub
{
public void SaySomething(string message)
{
Clients.say(message);
}
public void SayHelloWorld()
{
Clients.say("hello world");
}
}
服务器中其他地点和时间的代码:
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.say(message);
还有我的客户端脚本:
<script src="Scripts/jquery.signalR-0.5.3.js" type="text/javascript" > </script>
<script src="signalr/hubs"> </script>
<script type="text/javascript">
var hub = $.connection.myHub;
$.extend(hub, {
Say: function(message) {
alert(message); //this only works when the sayHelloWorld() method is executed
}
});
$.connection.hub.start()
.done(function(){
hub.sayHelloWorld(); //this works
});
</script>