【问题标题】:Websocket.onmessage isn't firingWebsocket.onmessage 没有触发
【发布时间】:2020-02-06 19:08:03
【问题描述】:

我尝试通过 JS-WebSocket 在 Java WebsocketServer (https://github.com/TooTallNate/Java-WebSocket) 与网页之间进行通信。

我的 JS-Websocket:

window.websocket = new WebSocket("ws://localhost:8000");
window.websocket.onopen = () => {
    window.websocket.send("Hello")
}




window.websocket.onmmessage = function(event) {
    alert('Hi');

    console.log(event.data);
}

还有我的 Java-Websocket-Server:

package test;

import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.util.HashSet;
import java.util.Set;

import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.server.WebSocketServer;

public class testsocket extends WebSocketServer {


    private static int TCP_PORT = 9000;

    private Set<WebSocket> conns;

    public testsocket() throws UnknownHostException {
        super(new InetSocketAddress(TCP_PORT));
        conns = new HashSet<>();

    }

    @Override
    public void onOpen(WebSocket conn, ClientHandshake handshake) {
        conns.add(conn);
        System.out.println("New connection from " + conn.getRemoteSocketAddress().getAddress().getHostAddress());

    }

    @Override
    public void onClose(WebSocket conn, int code, String reason, boolean remote) {

    }

    @Override
    public void onMessage(WebSocket conn, String message) {
        System.out.println(message);

        String s2send = "hello";
        System.out.println(s2send);
        conn.send(s2send);


    }

    @Override
    public void onError(WebSocket conn, Exception ex) {
        ex.printStackTrace();
        if (conn != null) {
            conns.remove(conn);
            // do some thing if required
        }

    }

}

所以我的 Java-Websocket 打印“Hello”,所以我可以从 JS 通信到 Java,但另一方面,我的 Websocket 既没有显示警报也没有在控制台中打印,所以我假设 onmessage 没有触发

【问题讨论】:

    标签: javascript java websocket


    【解决方案1】:

    如果您确定,您的 java ws 服务器正在工作...那么

    有错别字!事件监听器应该是window.websocket.onmessage window.websocket.onmmessage。两个“m”:)

    window.websocket = new WebSocket("ws://localhost:8000");
          window.websocket.onopen = () => {
            window.websocket.send("Hello");
          };
    
          window.websocket.onmessage = function(event) {
            alert("Hi");
    
            console.log(event.data);
          };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      • 2017-12-16
      • 2017-08-15
      • 2013-05-31
      • 2013-03-13
      • 2021-06-27
      • 2015-11-25
      相关资源
      最近更新 更多