Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Websocket在playframework 2中向所有客户端发送数据_Java_Playframework_Websocket_Playframework 2.0 - Fatal编程技术网

Java Websocket在playframework 2中向所有客户端发送数据

Java Websocket在playframework 2中向所有客户端发送数据,java,playframework,websocket,playframework-2.0,Java,Playframework,Websocket,Playframework 2.0,我需要帮助来理解playframework中的WS 我的控制器中有下一个代码 public static WebSocket<String> sockHandler() { return new WebSocket<String>() { // Se llama para establecer el WS public void onReady(WebSocket.In<String> in, WebSocket.Out<String&

我需要帮助来理解playframework中的WS

我的控制器中有下一个代码

public static WebSocket<String> sockHandler() {
return new WebSocket<String>() {
    // Se llama para establecer el WS

    public void onReady(WebSocket.In<String> in, WebSocket.Out<String> out) {

        //por cada evento recivido por el socket
        // Se regitra una llamada para el procesamiento de los eventos
        in.onMessage(new Callback<String>() {
            public void invoke(String event) {
                //Logger.info(event)
                System.out.println("este es el event "+event);

            } 
         });

        // write out a greeting
        out.write("Hola a todos");
    }
};
publicstaticwebsocketsockhandler(){
返回新的WebSocket(){
//东南美洲驼para establecer el WS
public void onReady(WebSocket.In,WebSocket.Out){
//端口cada事件接收端口el插座
//这是一个重要的事件过程
in.onMessage(新回调(){
公共void调用(字符串事件){
//Logger.info(事件)
System.out.println(“este es el事件”+事件);
} 
});
//写下问候语
写出(“今天好”);
}
};
}

我认为:

<script type="text/javascript" charset="utf-8">

    $(function() {
        var WS = window['MozWebSocket'] ? MozWebSocket : WebSocket
        var sock = new WS("@routes.Application.sockHandler().webSocketURL(request)")

        $('button.send').click(function() {
          console.log('entro al click');
          sendMessage();  
        }); 

        var sendMessage = function() {
            sock.send("llamando controller");
        }

        var receiveEvent= function(event) {
            $('.greeting').append(event.data);
            alert('entro');
        }

        sock.onmessage=receiveEvent;
    })

</script>

$(函数(){
var WS=window['MozWebSocket']?MozWebSocket:WebSocket
var sock=new WS(“@routes.Application.sockHandler().webSocketURL(请求)”)
$('button.send')。单击(函数(){
console.log('entro al click');
sendMessage();
}); 
var sendMessage=函数(){
短袜发送(“llamando控制器”);
}
var receiveEvent=函数(事件){
$('.greeting').append(event.data);
警报(“entro”);
}
sock.onmessage=receiveEvent;
})
当客户端发送操作时,我需要始终在所有客户端上打印警报(“entro”)

对不起,我说英语,但我说西班牙语


非常感谢

在您的代码中,您正在编写对实际创建的Websocket(即调用客户端和服务器之间的实际Websocket)的响应。你必须知道每个客户都有自己的Websocket

如果要向每个客户机写入内容,必须将所有创建的WebSocket保存在某个位置。在中,它是通过以下代码部分完成的:

(实际上没有产出):

并向所有客户端发送一条消息,通过以下方式完成:

for(WebSocket.Out频道:members.values()){
ObjectNode事件=Json.newObject();
事件。放置(“种类”,种类);
事件放置(“用户”,用户);
事件放置(“消息”,文本);
ArrayNode m=event.putArray(“成员”);
对于(字符串u:members.keySet()){
m、 加(u);
}
通道写入(事件);
}

在代码中,您正在编写对实际创建的Websocket(即调用客户端和服务器之间的实际Websocket)的响应。你必须知道每个客户都有自己的Websocket

如果要向每个客户机写入内容,必须将所有创建的WebSocket保存在某个位置。在中,它是通过以下代码部分完成的:

(实际上没有产出):

并向所有客户端发送一条消息,通过以下方式完成:

for(WebSocket.Out频道:members.values()){
ObjectNode事件=Json.newObject();
事件。放置(“种类”,种类);
事件放置(“用户”,用户);
事件放置(“消息”,文本);
ArrayNode m=event.putArray(“成员”);
对于(字符串u:members.keySet()){
m、 加(u);
}
通道写入(事件);
}

您到底想实现什么目标?当用户发送某个信息时,每个连接的用户都应该打印警报(“entro”)?没错,这就是我想要实现的。您看过样本了吗?看到这个帖子:我看到了这个例子,但不了解akka的实现。是阿卡最终掌握了答案?你到底想实现什么?当用户发送某个信息时,每个连接的用户都应该打印警报(“entro”)?没错,这就是我想要实现的。您看过样本了吗?看到这个帖子:我看到了这个例子,但不了解akka的实现。最终是谁指挥了答案?
Map<String, WebSocket.Out<JsonNode>> members = new HashMap<String, WebSocket.Out<JsonNode>>();
members.put(join.username, join.channel);
for(WebSocket.Out<JsonNode> channel: members.values()) {

    ObjectNode event = Json.newObject();
    event.put("kind", kind);
    event.put("user", user);
    event.put("message", text);

    ArrayNode m = event.putArray("members");
    for(String u: members.keySet()) {
        m.add(u);
    }

    channel.write(event);
}