谁能帮我解决一下这个问题?谢谢了
- *//程序希望的得到结果是(用telnet 127.0.0.1 8888在终端连接):打开多个终端,在其中任意一个终端输入的
- //内容都将会发送到其他窗口,我运行的时候,在一个终端输入,其他终端没有反应*
- var events = require(‘events’);
- var net = require(‘net’);
- var channel = new events.EventEmitter();
- channel.clients = {};
- channel.inputcontents = {};
- //join事件监听器用来保存连接client信息
- channel.on('join’, function(id, client) {
- this.clients[id] = client;
- this.inputcontents[id] = function(senderId, message) {
- //如果用户是输入信息的用户则不在终端显示
-
if( id != senderId)
-
this.clients[id].write(message);
- }
- //broadcast事件监听器用来执行显示在其他终端显示的功能
- this.on('broadcast’, this.inputcontents[id]);
- });
- //建立服务器,发射相关事件
- net.createServer(function (client) {
- var id = client.remoteAddress + ‘:’ +client.remotePort;
- client.on('connect’, function(){
-
channel.emit('join', id, client);
- });
- client.on('data’, function(data){
-
channel.emit('broadcast', id, data);
- });
- }).listen(8888);
4 回复
client.on('connect’, function(){ channel.emit('join’, id, client); }); 改为 channel.emit('join’,id,client); 具体为什么我也不懂,刚开始学习,你可以看看api里关于net.createServer()的讲解. http://nodeapi.ucdok.com/api/net.html