我已经使用Scala 2.11安装了新的Play Framework 2.3,我将使用websocket构建一个应用程序。
带有scala的服务器代码非常简单:
object TestWebSocket extends Controller {
def mysocketservice = WebSocket.acceptWithActor[String, String] { request => out =>
TestSocketActor.props(out)
}
}
route.conf是: GET / wsk / testwebsocket controllers.TestWebSocket.mysocketservice
现在我需要一个Javascript代码来连接我的页面和scala代码,我可以使用哪个javascript库?我见过socket.io,但似乎只适用于node.js服务器。
我知道我可以直接使用WebSocket,但我会使用像socket.io这样的库来与旧浏览器兼容。
有人能帮助我吗? 非常感谢你
答案 0 :(得分:1)
试试这个javascript。这是在Chrome,Safari,Mozilla等上执行此操作的标准方法。
<script type="text/javascript">
function WebSocketTest(){
if ("WebSocket" in window){
var ws = new WebSocket("@routes.controllers.TestWebSocket.mysocketservice().webSocketURL()");
ws.onopen = function(){
// Web Socket is connected, send data using send()
console.log("connected");
ws.send("Message to send");
};
ws.onmessage = function (evt){
var received_msg = evt.data;
console.log(evt.data);
};
ws.onclose = function(){
// websocket is closed.
alert("Connection is closed...");
};
}else{
// The browser doesn't support WebSocket
alert("WebSocket NOT supported by your Browser!");
}
}
WebSocketTest();
</script>
让我知道它是怎么回事。
答案 1 :(得分:0)
我使用优雅的websocket。它非常直观,隐藏了所有复杂性。
https://code.google.com/p/jquery-graceful-websocket/
// open socket using standard syntax
ws = $.gracefulWebSocket("ws://localhost:9000/soc"); //use wss for https
ws.onmessage=onSocMsg;
function onSocMsg(event){
var jsonObj=json.fromString(event.data);
alert(event.data);
}
答案 2 :(得分:-1)
您不一定需要客户端库来利用WebSockets。 Mozilla提供了WebSockets API here的实用文档。
话虽如此,如果您希望旧版浏览器上的访问者能够利用您的WebSocket功能,您可能希望查看SockJS之类的项目,这些项目可以优雅地回退到劣等(但更好的支持)协议,如果需要。