我正在尝试按照https://github.com/LearnBoost/socket.io/wiki/Configuring-Socket.IO
设置socket.io的配置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)它会给我错误,找不到listen方法。
答案 0 :(得分:8)
require('socket.io')
返回一个Socket对象。 set属性在socket.io-manager上。经理通过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
答案 1 :(得分:2)
您需要var io = require('socket.io').listen(80);
而非仅需要。
答案 2 :(得分:1)
var io = require('socket.io').listen(80);
io.configure( function(){
io.set('log level', 3);
});
这里有一件重要的事情需要注意。如果你得到错误* process.nextTick错误,或者第一次打勾时发生'错误'事件...... *这意味着你有另一个网络服务器,比如Apache,正在收听80端口。
因此,如果您将端口设置为,例如8080,它应该可以工作:
var io = require('socket.io').listen(8080);
io.configure( function(){
io.set('log level', 3);
});
希望这有帮助。