최근에 "Node.js in Action"책으로 Node.js를 학습하기 시작했습니다. chat_sever하는NodeJS events on ('connect') 오류
node chat_server.js
그런 열어 새 터미널과 연결 :
telnet 127.0.0.1 8888
그런 다음 다시 새 터미널 창을 열고 연결 내가 코드를 실행
var events = require('events');
var net = require('net');
var channel = new events.EventEmitter();
channel.clients = {};
channel.subsriptions = {};
channel.on('join', function (id, client) {
this.clients[id] = client;
this.subsriptions[id] = function (senderId, message) {
if (id !== senderId) {
this.clients[id].write(message);
}
};
this.on('broadcast', this.subsriptions[id]);
});
var server = net.createServer(function (client) {
var id = client.remoteAddress + ':' + client.remotePort;
client.on('connect', function() {
channel.emit('join', id, client);
});
client.on('data', function (data) {
data = data.toString();
channel.emit('broadcast', id, data);
});
});
server.listen(8888);
: 장 목록이 다음입니다 chat_server. 이 책은 말한다 :
이"당신은 몇 명령 줄을 열면, 당신은 다른 사람에게 반향되어 하나의 명령 줄에 입력하는 것을 볼 수 있습니다."
내가 입력하려고 하나의 단말기는 있지만 다른 단말기에는 아무 것도 울리지 않습니다. 무엇이 문제 일 수 있는가? 우분투 12.04를 실행하고
는 편집 :
나는이 부분을 디버깅하려고 :
client.on('connect', function() {
console.log('joined ' + id);
channel.emit('join', id, client);
});
를하지만 저를 표시하지 않습니다 내가 여러 터미널을 열 경우에도 "메시지에 합류했다".
: 그리고으로 교체해야합니다. 빠른보기에서 나는 메시지가 모든 사용자에게 방송되지 않는다고 말할 것입니다. – maurycy