写了个聊天室可是客户端链接服务器就卡住了 readystate一直是0 连接中状态 这是为什么 难道在connect时候需要别的操作吗 代码如下: 求救
服务端代码
var connections = [];
var net = require('net');
// 创建一个TCP服务器实例,调用listen函数开始监听指定端口
// 传入net.createServer()的回调函数将作为”connection“事件的处理函数
// 在每一个“connection”事件中,该回调函数接收到的socket对象是唯一的
net.createServer(function(sock) {
// 我们获得一个连接 - 该连接自动关联一个socket对象
connections.push(sock);
console.log('CONNECTED: ' + sock.remoteAddress + ':' + sock.remotePort);
sock.write('fdsafdsafsa');
// 为这个socket实例添加一个"data"事件处理函数
sock.on('data', function(data) {
console.log('DATA ' + sock.remoteAddress + ': ' + data);
// 回发该数据,客户端将收到来自服务端的数据
// sock.write('You said "' + data + '"');
});
// 为这个socket实例添加一个"close"事件处理函数
sock.on('close', function(data) {
console.log('CLOSED: ' + sock.remoteAddress + ' ' + sock.remotePort);
});
}).listen(8081);
console.log('Server listening on ' + port);
客户端代码
var SocketCreated;
var ws;
function createSocket (name) {
if (SocketCreated && (ws.readyState == 0 || ws.readyState == 1)) {
ws.close();
}
Log("准备连接到聊天服务器 ...");
try {
ws = new WebSocket('ws://localhost:8081?name='+name);
SocketCreated = true;
} catch (ex) {
Log(ex, "ERROR");
return;
}
ws.onopen = WSonOpen;
ws.onmessage = WSonMessage;
ws.onclose = WSonClose;
ws.onerror = WSonError;
}
function WSonOpen() {
Log("连接已经建立。", "OK");
};
function WSonMessage(event) {
Log(event.data);
};
function WSonClose() {
Log("连接关闭。", "ERROR");
};
function WSonError() {
Log("WebSocket错误。", "ERROR");
};
function Log (text,type) {
var li = document.createElement('li');
switch(type) {
case 'OK':
li.setAttribute('class','ok');
break;
case 'ERROR':
li.setAttribute('class','error');
break;
default:
break;
}
var chatDiv = document.getElementById('chatDiv');
var ul = chatDiv.getElementsByTagName('ul')[0];
li.innerText = text;
ul.appendChild(li);
}