我做了一個在線多人遊戲。當我在localhost:3000上使用node.js命令提示符運行它時,我工作得很完美。但是當我嘗試在網站上運行它時,它並沒有執行我的app.js文件所說的操作。我的問題是;在網站上運行node.js,但不在本地主機
如何讓我的node.js項目在我的網站上運行,而不是在本地主機上運行? 什麼是港口而不是3000? 我可以通過ftp上傳一些文件到我的網站嗎?
這裏是我的app.js文件
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
var usernumm = 0;
var usernum1 = [];
app.use(express.static(__dirname + '/public'));
server.listen(3000);
app.get('/', function(req, res){
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function(socket){
var endpoint = socket.manager.handshaken[socket.id].address;
console.log('***New connection from ' + endpoint.address + ':' + endpoint.port);
usernumm++;
io.sockets.emit('usernum', usernumm);
usernum1[usernumm] = endpoint.port;
console.log('usernum'+usernumm+'geldi'+findusernum());
socket.on('button1socket', function(){
io.sockets.emit('button1f', findusernum());
console.log('user '+findusernum()+' pressed a button');
});
socket.on('buttonclickable', function(){
io.sockets.emit('buttonclickable1', findusernum());
});
socket.on('disconnect', function() {
usernumm--;
io.sockets.emit('usernum', usernumm);
//sockets[usernum] = socket.port;
console.log('***Client disconnected');
});
//finds number of online users
function findusernum(){
for(var i = 0; i<9;i++){
if(usernum1[i] == endpoint.port){return i;}else{}
}
}
});
[去節點生活](http://code.tutsplus.com/tutorials/going-live-with-node-net-33923) – adeneo
我推薦Heroku,基本上你只是上傳它,它應該跑。 您還應該注意: 'var port = process.env.PORT || 3000' 這可以讓您的服務器根據環境端口運行。 –
@MuliYulzary感謝您的評論,它幫助。 Heroku真棒。和這個('process.env.PORT || 3000')也有幫助。 –