繁体   English   中英

在网站上但不在本地主机上运行node.js

[英]Running node.js on a website but not on localhost

我做了一个在线多人游戏。 当我在localhost:3000上使用node.js命令提示符运行它时,我可以完美工作。 但是,当我尝试在网站上运行它时,并没有按照我的app.js文件所说的去做。 我的问题是;

如何使我的node.js项目在我的网站上而不是在localhost上运行? 什么是端口而不是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{}
        }
}


});

尝试:

var express = require('express');
var app = express();
var httpServer = require('http').Server(app);
var socketServer = require('socket.io')(httpServer);

var ip = 'iphere';
var port = 80;

app.use(express.static(__dirname + '/public'));

app.get('/', function(req, res){
    res.sendfile(__dirname + '/index.html');
});

socketServer.on('connection', function(socket){
    console.log("A Client has connected.");
    socket.on('disconnect', function(){
        console.log("A Client has disconnected.");
    });
});

httpServer.listen(port, ip, function(){
    console.log("Listening to "+ip+":"+port);
});

index.html的:

<!DOCTYPE html>
<html>
<head>
    <title>Index</title>
    <script type="text/javascript" src="http://ip:port/socket.io/socket.io.js"></script>
    <script type="text/javascript">
        var socket;
        try{
            socket = io("http://ip:port/", {'forceNew':true });
            socket.on('connect', function(error){
                if(error){

                }
            });
        }catch(e){

        }
    </script>
</head>
<body>

</body>
</html>

指定IP和端口后

端口将您指定的端口转发到使用路由器运行网站/游戏的端口

那么您可以通过http:// yourpublicip:port /访问它

如果其端口为80,则访问不带端口的页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM