我在 play 2.1 中有一个 websockets 程序,它工作得很好,模板看起来像这样:
// Contents of the view.scala.html file
@(userName: String)(implicit request: RequestHeader)
@main("text") {
<script type="text/javascript" charset="utf-8">
$(function() {
var WS = window['MozWebSocket'] ? MozWebSocket : WebSocket;
alert("before")
var socket = new WS("@routes.Application.view(userName).webSocketURL()");
alert("after")
socket.onmessage = function(event) {
alert(event.data);
};
});
</script>
}
问题是,一旦我将我的 javascript 移动到assets.javascripts
文件夹中并将view.scala.html
文件更改为以下文件,它就会停止工作。
// Contents of the view.scala.html file
@(userName: String)(implicit request: RequestHeader)
@main("text") {
<script type="text/javascript" charset="utf-8"
src="@routes.Assets.at("javascripts/viewer.min.js")"></script>
}
Play 找到文件,执行 javascript,我可以看到由alert("before")
代码行触发的弹出窗口,但之后......什么都没有。
这是我在控制台中遇到的 google chrome 错误:
Wrong url scheme for WebSocket
http://localhost:9000/@routes.Application.view(userName).webSocketURL()
我错过了什么?