javascript - Websocket.onmessage 没有触发
问题描述
我尝试通过 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 没有触发
解决方案
如果您确定,您的 java ws 服务器正在工作......那么
有错别字!事件监听器应该是window.websocket.onmessage
. 不是 window.websocket.onmmessage
。两个“m”s :)
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);
};
推荐阅读
- r - 如何计算所有重复中每种处理的平均值
- c# - 无法访问已关闭的流 && HTMLWorker 已过时
- php - PayPal PHP SDK 不适用于订阅,获取 RESOURCE_NOT_FOUND
- c# - 在循环中将 @ref 添加到 Blazor 组件
- javascript - How to add multiple routes using mapquest api, L.mapquest.directions().route()?
- android - java.lang.IllegalStateException: sensorManager.getDefaultSensor(sensorType) 在 Flutter 中不能为 null
- python - 如何在scrapy中按项目将下载的文件分组在同一子目录中?
- algorithm - 用预言机有效地对整数进行素数分解
- java - 打开程序时在 Java 中获取用户输入
- javascript - 检查光标何时悬停在链接上(尤其是 YouTube 链接)