socket.ioconfiguration

我想按照https://github.com/LearnBoost/socket.io/wiki/Configuring-Socket.IO来设置socket.io的configuration

io.set('log level', 1); 

但是我得到TypeError:对象#没有方法“设置”…怎么了? 我有io = require(“socket.io”)

还试过,

 io.configure('production', function(){ io.set('log level', 1); }); 

但没有运气。 怎么了 ?

编辑:

 require.paths.push('/cygdrive/c/Personal/software/nodejs/NODE/node_modules'); var express = require("express"), fs = require("fs"), form = require('connect-form'), app = express.createServer( form({ keepExtensions: true }) ), sys = require("sys"), RentModel = require("./rent_schema"), UserModel = require("./track_schema"), io = require("socket.io"), fb = require('facebook-js'), Twitter = require('./Twitter_Analysis'), Foursquare = require('./Foursquare_Analysis'), YQL = require("yql"), settings = require("./settings"); socket = io.listen(app); ::::::::::::::::: app.listen(9999); 

这工作正常..但如果我改变它io = require(“socket.io”). listen(8080)它给了我错误,没有find侦听方法。

       

网上收集的解决方案 "socket.ioconfiguration"

require('socket.io')返回一个Socket对象。 设置的属性在socket.io-manager上。 pipe理器通过require('socket.io').listen(server)调用返回。

请注意,您应该将一个Web服务器传递给socket.io,而不仅仅是一个端口:

 var app = require('http').createServer(handler), io = require('socket.io').listen(app); io.set('log level', 2); app.listen(8080); // this is the server, not socket.io 

你想要var io = require('socket.io').listen(80); 而不是仅仅需要。

 var io = require('socket.io').listen(80); io.configure( function(){ io.set('log level', 3); }); 

这里有一件重要的事情需要注意。 如果在第一次打勾时得到错误* process.nextTick错误或“错误”事件… *,这意味着您有另一台Web服务器,如Apache,正在侦听端口80。

所以,如果你把端口设置为8080,它应该可以工作:

 var io = require('socket.io').listen(8080); io.configure( function(){ io.set('log level', 3); }); 

希望这可以帮助。