我是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);
};
那么我做错了什么?它应该这样工作吗?
我使用scala和play2,我的服务器端代码是(使用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)
}
}
答案 0 :(得分:0)
这实际上是服务器端问题。应该使用 tryAcceptWithActor 而不是 acceptWithActor 。