em websocket和javascript客户端连接
我有一个简单的eventmachine web套接字服务器(eventmachine 1.0.0): 在以前版本的safari中,它可以完美地与最新版本配合使用,因为客户端没有连接到服务器 我在上一个Chrome开发稳定版上也试过了,但不起作用 web套接字标头已发送,但仍处于挂起状态 如果我向web套接字发送文本消息,我将收到em websocket和javascript客户端连接,websocket,eventmachine,em-websocket,Websocket,Eventmachine,Em Websocket,我有一个简单的eventmachine web套接字服务器(eventmachine 1.0.0): 在以前版本的safari中,它可以完美地与最新版本配合使用,因为客户端没有连接到服务器 我在上一个Chrome开发稳定版上也试过了,但不起作用 web套接字标头已发送,但仍处于挂起状态 如果我向web套接字发送文本消息,我将收到无效\u状态\u错误:DOM异常11 我看到有一个草稿更改,但我认为em websocket 0.3.8已经实现了它 你能帮我解决这个问题吗 非常感谢无效状态\u错误:D
无效\u状态\u错误:DOM异常11
我看到有一个草稿更改,但我认为em websocket 0.3.8已经实现了它
你能帮我解决这个问题吗
非常感谢无效状态\u错误:DOM异常11表示您的websocket尚未处于就绪状态 您可以通过socket.readyState检查websocket对象的状态 当socket.readyState==1时,您可以发送消息 我通过使用超时创建了一个周转
timerId = setInterval(sendDataWhenReady, 1000);
function sendDataWhenReady(){
if(socket.readyState == 1){
ws.send(JSON.stringify({"type": 'STATUS', "status": status, "username": logged_in_user}))
clearInterval(timerId);
}
}
感谢您的正确解释,但我的问题是websocket未处于就绪状态,这意味着当您尝试通过websocket连接发送某些数据时,它当时还未就绪尝试使用浏览器的javascript控制台发送该数据,它不会引发错误:)
socket = new WebSocket("ws://localhost:8080");
socket.onopen = function(e) {
socket.send('Connesso');
};
socket.onmessage = function(mess) {
if (mess) {
socket.send(mess);
}
};
socket.onclose = function(e) {
socket.send('Disconnesso');
};
timerId = setInterval(sendDataWhenReady, 1000);
function sendDataWhenReady(){
if(socket.readyState == 1){
ws.send(JSON.stringify({"type": 'STATUS', "status": status, "username": logged_in_user}))
clearInterval(timerId);
}
}