写了个聊天室可是客户端链接服务器就卡住了 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); }