Events Node.js代码问题
我是node.js的新手。我正在尝试的代码中有一些问题。看看代码:Events Node.js代码问题,events,node.js,Events,Node.js,我是node.js的新手。我正在尝试的代码中有一些问题。看看代码: var http =require('http'); var url = require('url'); var events=require('events'); var e=new events.EventEmitter(); var i=0; var clientlist=new Array(); function user(nam,channel) { this.nam = nam; this.chan=channe
var http =require('http');
var url = require('url');
var events=require('events');
var e=new events.EventEmitter();
var i=0;
var clientlist=new Array();
function user(nam,channel) {
this.nam = nam;
this.chan=channel;
}
server = http.createServer(function(req,res) {
res.writeHead(200,{'Content-Type':'text/html'});
res.write('welcome');
var pathname = url.parse(req.url).pathname;
pathname=pathname.substring(1);
pathnames=pathname.split("&");
var c=new user(pathnames[0],pathnames[1]);
clientlist[i++]=c;
console.log("user "+pathnames[0]+" joined channel "+pathnames[1]);
e.emit('userjoined',clientlist[i-1].nam,clientlist[i-1].chan);
e.on('userjoined',function(n,c) {
res.write("new user joined with name: "+n+" and he joined channel "+c+"\n");
});
});
server.listen(2000);
我遇到的问题是:
有人能告诉我这里出了什么问题吗?谢谢好的,有几个问题:
var http =require('http');
var url = require('url');
var events=require('events');
var e=new events.EventEmitter();
var i=0;
var clientlist=new Array();
function user(nam,channel) {
this.nam = nam;
this.chan=channel;
}
e.on('userjoined',function(res,n,c) {
console.log("iuser "+pathnames[0]+" joined channel "+pathnames[1]);
res.write("new user joined with name: "+n+" and he joined channel "+c+"\n");
res.end();
});
server = http.createServer(function(req,res) {
res.writeHead(200,{'Content-Type':'text/html'});
res.write('welcome');
var pathname = url.parse(req.url).pathname;
pathname=pathname.substring(1);
pathnames=pathname.split("&");
var c=new user(pathnames[0],pathnames[1]);
clientlist[i++]=c;
console.log("user "+pathnames[0]+" joined channel "+pathnames[1]);
e.emit('userjoined',res,clientlist[i-1].nam,clientlist[i-1].chan);
});
server.listen(2000);
你是在打电话给Response.end而我却错过了?您必须告诉它将流写入浏览器而不是缓冲。我不想调用response.end()bcoz来关闭连接。我想让它活着。无论如何,问题似乎出在node0.5.0版本上。相同的代码在node0.4.9版本中工作:/n您是否尝试使用套接字?您仍然需要告诉服务器每隔一段时间向客户端发送一次信息。至少是冲洗。@jcolebrand:我没有使用插座。我试图做的是,保持连接打开,并在事件发生时向客户端发送数据。我查看了socket.io,但由于某种原因,我甚至无法让hello world程序工作。socket.io文档高度不一致。你认为这是一个更好的选择吗?是的,我知道这是为了你所描述的。问题是bcoz if response.end。但是,我不想呼叫response.end bcoz,这将关闭连接。此问题仅在节点0.5.0中出现。。。不在节点0.4.9中