我使用websockets和Glassfish . 我在加载页面上调用start()函数 . 当启动功能包含警报时,它会将消息发送到服务器,但是当我没有发出警报时它不起作用 . 我无法弄清楚为什么 .
java脚本
function start() {
alert('a'); //this alert
webSocket.send('start_server');
}
function onMessage(event) {
document.getElementById('messages').innerHTML
+= event.data;
}
服务器端
@OnMessage
public void onMessage(String message, Session session)
throws IOException, InterruptedException {
System.out.println("Message recieved");
session.getBasicRemote().sendText(message);
}
@OnOpen
public void onOpen() {
System.out.println("Client connected");
}
1 回答
你在哪里初始化客户端的Web套接字?警报暂停执行,直到你单击确定 - 所以我猜你的执行顺序是错误的(在webSocket.send之前初始化websocket)
您可以在WebSocket#open事件发生后发送数据 .
var connection = new WebSocket(...) connection.onopen = function () { connection.send('Ping'); };
资料来源:html5rocks