【发布时间】:2015-01-14 18:26:34
【问题描述】:
我用 Socket.io 1.2 编写了这段代码
var app=require('express')();
var http=require('http').Server(app);
var io=require('socket.io')(http);
var room;
var messageEmitted;;
app.get('/', function(req, res){
res.sendFile(__dirname +'/index.html');
});
app.get('/lol', function(req, res){
res.sendFile(__dirname +'/lol.html');
});
io.use(function(socket,next){
var handShakeData=socket.request;
room=handShakeData._query['roomName'];
messageEmitted=handShakeData._query['messageText'];
next();
});
io.on('connection',function(socket){
console.log('A user connnected on : '+room);
socket.join(room);
io.to(room).emit('emittedMessages',messageEmitted);
console.log(messageEmitted);
/*socket.on('emittedMessages',function(msg){
//socket.emit(msg); // Send message to sender
socket.broadcast.emit(msg); // Send message to everyone BUT sender
});*/
socket.on('disconnect', function(){
// io.to(room).emit('emittedMessages','A User Disconnected on: '+room);
console.log('A user disconnected');
});
});
http.listen(3000,function(){
console.log('Listening oon Port: 3000');
});
而且这段代码运行良好。
我正在尝试从名为 Gottox 的 android 库中访问此代码,此版本需要 0.9.16
但是,当我尝试通过键入以下命令移至旧库(即 0.9.16)时:
npm remove socket.io
npm install socket.io@0.9.16
当我跑步时:
node server.js
我收到此错误:
D:\NodeJSSocketBroadcast>node server.js
D:\NodeJSSocketBroadcast\server.js:3
var io=require('socket.io')(http);
^
TypeError: object is not a function
at Object.<anonymous> (D:\NodeJSSocketBroadcast\server.js:3:28)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
如何在旧版本的 socket.io 中实现相同的功能?我找不到任何文档。我还发现 this link 也有相同的描述。
请帮忙! :( :(
【问题讨论】:
标签: android node.js sockets socket.io socket.io-1.0