Websocket:从不同的页面接收消息

Websocket: receive message from different page

我是 websockets 的新手。我的服务器端似乎没问题。关于客户端的问题。 我正在尝试通过这种方式从一个页面发送消息并从另一个页面获取消息:

a.html:

var ws = new WebSocket("ws://localhost:9000/ws");
 $("body").on('click', '#some', function () {
        ws.send("clicked");
 });

b.html:

var ws = new WebSocket("ws://localhost:9000/ws");
ws.onmessage = function (event) {
    var message = event.data;
    alert(message);
};

没用。我从来没有在 b 上收到消息。但是,当我将这些部分组合在一页上时,它会按预期工作:

var ws = new WebSocket("ws://localhost:9000/ws");
$("body").on('click', '#some', function () {
     ws.send("clicked");
});
ws.onmessage = function (event) {
     var message = event.data;
     alert(message);
};

那我做错了什么?它应该这样工作吗?

我在 play2 中使用 scala,我的服务器端代码是(使用 this 手册):

def ws = WebSocket.acceptWithActor[String, String] { request => out =>
    MyWebSocketActor.props(out)
}

class MyWebSocketActor(out: ActorRef) extends Actor {
  def receive = {
    case msg: String =>
      out ! ("I received your message: " + msg)
  }
}

这实际上是服务器端的问题。应该使用 tryAcceptWithActor 而不是 acceptWithActor.