【发布时间】:2015-04-18 12:29:33
【问题描述】:
我有一个在互联网上找到的 nodejs 语言文件,我想运行它,但我不知道如何运行它。我尝试使用 cmd 命令运行:node server.js 但它不起作用。
文件server.js
var port = process.env.PORT || 3000;
server = require('http').createServer(),
io = require('socket.io').listen(server),
users = {}, socks = {};
function Uid() { this.id = ++Uid.lastid; }
Uid.lastid = 0;
//Handle users
io.sockets.on('connection', function (socket) {
// Event received by new user
socket.on('join', function (recv) {
if (!recv.user) {
socket.emit('custom_error', { message: 'User not found or invalid' });
return;
}
// The user already exists
if (users[recv.user]) {
socket.emit('custom_error', { message: 'The user '+ recv.user +' already exists' });
return;
}
// If there is users online, send the list of them
if (Object.keys(users).length > 0)
socket.emit('chat', JSON.stringify( { 'action': 'usrlist', 'user': users } ));
// Set new uid
uid = new Uid();
socket.user = recv.user;
// Add the new data user
users[socket.user] = {'uid': Uid.lastid, 'user': socket.user, 'name': recv.name, 'status': 'online'}
socks[socket.user] = {'socket': socket}
// Send new user is connected to everyone
socket.broadcast.emit('chat', JSON.stringify( {'action': 'newuser', 'user': users[socket.user]} ));
});
// Event received when user want change his status
socket.on('user_status', function (recv) {
users[socket.user].status = recv.status;
socket.broadcast.emit('chat', JSON.stringify( {'action': 'user_status', 'user': users[socket.user]} ));
});
// Event received when user is typing
socket.on('user_typing', function (recv) {
var id = socks[recv.user].socket.id;
io.sockets.socket(id).emit('chat', JSON.stringify( {'action': 'user_typing', 'data': users[socket.user]} ));
});
// Event received when user send message to another
socket.on('message', function (recv) {
var id = socks[recv.user].socket.id;
var msg = {'msg': recv.msg, 'user': users[socket.user]};
io.sockets.socket(id).emit('chat', JSON.stringify( {'action': 'message', 'data': msg} ));
});
// Event received when user has disconnected
socket.on('disconnect', function () {
socket.broadcast.emit('chat', JSON.stringify( {'action': 'disconnect', 'user': users[socket.user]} ));
//socket.broadcast.emit('chat', JSON.stringify( {'action': 'offline', 'user': users[socket.user]} ));
delete users[socket.user];
delete socks[socket.user];
});
});
//Listen to the server port
server.listen(port, function () {
var addr = server.address();
console.log('jquery-chat server listening and ready');
});
【问题讨论】:
-
您有任何错误吗? “但它不起作用”是什么意思?
-
是的,我收到一个错误:Cant not find module "socket.io" at...
-
那么你没有安装 socket.io 模块。查看此链接以安装 socket.io socket.io/download
标签: javascript jquery node.js sockets