Play Framework 버전 2.1에서 작동하도록 websocket 통신을 사용할 수없는 것으로 보입니다.Chrome의 Play Framework 2.1 웹 소켓
버튼을 눌러 메시지를주고받는 간단한 테스트를 만들었습니다. 그것을위한 모든 코드는 아래 있습니다. 그러나 버튼을 제외하고는 아무 것도 나타나지 않습니다.
이 문제를 본 사람이 있습니까? 아니면 누군가 내가 아래 코드에서 잘못되었을 수 있습니다.
최신 버전의 Chrome을 사용하고 있습니다.
여기 내 간단한 설정입니다. Application.java에서
경로에서
public static Result index() {
return ok(index.render());
}
public static WebSocket<String> sockHandler() {
return new WebSocket<String>() {
// called when the websocket is established
public void onReady(WebSocket.In<String> in,
WebSocket.Out<String> out) {
// register a callback for processing instream events
in.onMessage(new Callback<String>() {
public void invoke(String event) {
System.out.println(event);
}
});
// write out a greeting
out.write("I'm contacting you regarding your recent websocket.");
}
};
}
는
Index.Scala.html에서 GET/controllers.Application.index()# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /greeter controllers.Application.sockHandler()
파일
@main(null) { <div class="greeting"></div> <button class="send">Send</button> <script type="text/javascript" charset="utf-8"> $(function() { var WS = window['MozWebSocket'] ? MozWebSocket : WebSocket var sock = new WS("@routes.Application.sockHandler()") sock.onmessage = function(event) { $('.greeting').append(event.data) } $('button.send').click(function() { sock.send("I'm sending a message now.") }); }) </script>
당신이 프로토콜과의 완전한 URL을 지정해야 var sock = new WS("@routes.Application.sockHandler()")
에 } Main.scala.html에서
@(title: String)(content: Html)
<!DOCTYPE html>
<html>
<head>
<title>@title</title>
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
<script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
</head>
<body>
@content
</body>
이것은 효과가있다. 그게 내 문제 였어. 응답 주셔서 감사합니다! – user2196112