Java Play framework vs SocketIO如何集成它们?

Java Play framework vs SocketIO如何集成它们?,java,scala,playframework,socket.io,Java,Scala,Playframework,Socket.io,所以我们想要一出戏!可以与SocketIO(javascript)客户端通信的应用程序 到目前为止,我所尝试的: 用一个剧本!内置WebSocket并发送与node.js服务器完全相同的字符串。结果就是根本不起作用。我可以在chrome框架选项卡中看到返回的消息,但是当来自nodejs服务器的消息触发OneEvent处理程序时,java实现从来没有这样做过 使用/移植项目。结果和剧本一样!在websocket版本中,服务器获取消息并作出响应,但该消息不会触发javascript事件处理程序 第三

所以我们想要一出戏!可以与SocketIO(javascript)客户端通信的应用程序

到目前为止,我所尝试的:

用一个剧本!内置WebSocket并发送与node.js服务器完全相同的字符串。结果就是根本不起作用。我可以在chrome框架选项卡中看到返回的消息,但是当来自nodejs服务器的消息触发OneEvent处理程序时,java实现从来没有这样做过

使用/移植项目。结果和剧本一样!在websocket版本中,服务器获取消息并作出响应,但该消息不会触发javascript事件处理程序

第三个java实现是。我还没有尝试过,但是当我需要在另一个端口上启动它而不是使用服务器端口和内置路由时,主要的概念是有问题的

Java和scala版本都受欢迎,我都可以使用

所以我的问题是:

  • SocketIO(>=v1.0)是否有任何可用的播放(>=2.3.0)应用程序
  • 在该游戏的内置WebSocket实现中会出现什么问题?如何将其用于SocketIO协议
  • 我可以在我的游戏中使用基于netty的网络应用程序吗!不使用新路由机制或新端口的应用程序
  • 有没有比javascript更具类型化或形式化语言的参考实现
播放Java控制器返回类型示例:

public class WebSocketWithCallBack extends WebSocket<String> {
    private static List<Out<String>> globalOutList = new ArrayList<>();
    @Override
    public void onReady(In<String> in, final Out<String> out) {
        //Adding the output to the room
        globalOutList.add(out);
        System.out.println("adding output, " + globalOutList.size());
        // For each event received on the socket,
        in.onMessage(new F.Callback<String>() {
            public void invoke(String event) {
                //send event to all outputs
                System.out.println("recieved message: ");
                System.out.println(event);
                for(Out<String> outlocal : globalOutList) {
                    outlocal.write("42[\"chat message\",\"asd\"]");
                }
            }
        });
        // When the socket is closed.
        in.onClose(new F.Callback0() {
            public void invoke() {
                //removing the output when closed
                globalOutList.remove(out);
                System.out.println("removing output, " + globalOutList.size());
            }
        });
    }
}
公共类WebSocketWithCallBack扩展WebSocket{
私有静态列表globalOutList=新的ArrayList();
@凌驾
公共无效onReady(输入,最终输出){
//将输出添加到文件室
globalOutList.add(out);
System.out.println(“添加输出,”+globalOutList.size());
//对于套接字上接收到的每个事件,
in.onMessage(新的F.Callback(){
公共void调用(字符串事件){
//将事件发送到所有输出
System.out.println(“收到的消息:”);
系统输出打印项次(事件);
for(Out outlocal:globalOutList){
outlocal.write(“42[\'chatmessage\',\'asd\']”);
}
}
});
//当插座关闭时。
in.onClose(新的F.Callback0(){
公共无效调用(){
//关闭时移除输出
globalOutList.remove(out);
System.out.println(“删除输出,”+globalOutList.size());
}
});
}
}