昨天我在PHP中编写了一个简短的WebSocket示例服务器。当客户端连接到服务器时,服务器读取客户端握手并使用适当的密钥发回服务器握手。客户端的onopen()被触发,服务器和客户端似乎连接。
我的问题是:服务器无法接收客户端消息,客户端无法接收服务器消息。 onmessage()没有被触发一次,socket_select()永远不会回退在服务器端发送消息的客户端。
function connect() {
try {
var webSocketURL = "ws://" + serverAddress + ":" + serverPort;
socket = new WebSocket(webSocketURL);
socket.onopen = function() {
log("Connected! (" + this.readyState + ")");
}
socket.onclose = function() {
log("Closed! (" + this.readyState + ")");
socket.close();
}
socket.onerror = function(error) {
log("Error: " + error.data);
socket.close();
}
socket.onmessage = function(message) {
log("Message from server: " + message.data);
}
}
catch (e) {
alert("Error: " + e);
}
}
服务器代码有点长,但您可以找到here。
谁能告诉我那里有什么问题?握手不正确吗?
客户端输出:
连接! (1) 发送给服务器的消息:0USERchannel
非常感谢帮助,谢谢。
答案 0 :(得分:1)
在客户端,请确保您的socket
变量是全局的。