官网上有一个这样的示例(http://socket.io/docs/):
此处,说明是会创建一个http请求,但是我没明白,这个请求创建了之后,要怎么访问呢,我看代码engine.io.js里,有这样一段代码:
function listen(port, options, fn) {
if (‘function’ == typeof options) {
fn = options;
options = {};
}
var server = http.createServer(function (req, res) {
res.writeHead(501);
res.end('Not Implemented');
});
server.listen(port, fn);
// create engine server
var engine = exports.attach(server, options);
engine.httpServer = server;
return engine;
};
创建的一个501请求,但是这样创建的一个,用什么方法可以访问呢?? 还有就是如果才能触发 connection事件呢?? 一直没搞明白这两个问题
按我的理解是,创建了一个HTTP服务,然后通过浏览器去访问,然后再通过客户端的 **var socket = io(‘http://localhost’);**来建立长链接,然后触发后端的 io.on('connection’, function (socket) { console.log(4); socket.emit('news’, { hello: ‘world’ }); socket.on('my other event’, function (data) { console.log(data); }); }); 但是,最上面的代码,不清楚在哪个地方可以触发事件,并且怎么访问建立的HTTP服务!请知道的解答一下,谢谢
示例代码一个是sever端的一个是client: sever端监听80端口 建立了两个频道 chat 和news ,在
on('connection',function(socket){
//do with socket fn eg:socket.emit('event','data');
});
中可以 通过socket.emit(‘evnet’,‘data’);触发事件,这时候客户端socket.on(‘event’,function(data){//do with the data})就可以接收到了。 分别用node server , node client 测试就清楚了
@dayuoba 问题是 client怎么访问??在这个例子中,创建的监听,根本没有访问入口啊
如果想通过web页面测试的话需要使用express框架,或者自行写http服务器 监听并渲染页面 https://github.com/erickrdch/demo-chat 这里有个demo-chat可以自己研究一下
git clone https://github.com/erickrdch/demo-chat
cd demo-chat
sudo npm install
node app
访问localhost:3000就可以用了 注意需要安装mongodb
@flftfqwxf client端访问就是 io.connect(‘http://localhost/chat’) //本机,80端口 在连接成功会触发connect事件,然后在连接成功后发送对应的数据给服务器就可以了