-1
我有一个本地工作的node.js应用程序(带有websockets)。我ssh到我的远程服务器,并运行node server.js
(我在本地做同样的事情)。我得到我的日志文本“连接并监听(端口)3000”。nodejs服务器不处理远程部署的请求
在本地运行时,我去https://localhost:3000
。对于远程服务器,我似乎无法找到节点服务器处理请求的位置。我试过https://mydomainroot.com:3000
和https://mydomainroot/folder/containing/serverjs
,以及该主题上的一些细微变化。
这些请求似乎都没有被我的节点服务器处理(它应该记录类似“收到的GET请求到/ main”)。套接字也没有响应。
我正在使用一个小的橙色托管,如果这件事。
我可以直接导航到main.html
,但它不能解决websocket问题。
我最喜欢的预感与路由有关,但我已经没有想到接下来要看的地方了。帮帮我?
代码:
var path = require('path');
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', function(req, res){
console.log("Received request for /");
res.sendFile('main.html', {root: __dirname + '/public'});
});
io.on('connection', function(socket) {
console.log("received socket connection");
users.push(socket);
socket.on('disconnect', function() {
if (socket.player)
var data = "updates"
io.emit(data);
});
socket.on('move', function(move) {
//send move to everyone except sender
io.emit("updates");
}
});
}); // socket connection ends
function start() {
http.listen(3000, function() {
console.log("connected and listening on 3000");
start();
})
};
function start() {
// this emits the game state to every connected socket
io.emit('Initial state');
// this triggers end of turn
setTimeout(nextTick, 5000);
}
function nextTick() {
io.emit('updates');
start();
}
start();
每[这个小橙子托管网站上的示例代码](https://help.asmallorange.com/index.php?/Knowledgebase/Article/View/286/1/getting-started-with-nodejs-on-看起来你可以同时运行nodejs和监听端口3000.我猜你的域名没有正确地连接到服务器运行的IP地址。您可以先查看您的nodejs服务器的IP地址和您的域的IP地址,然后查看它们是否相同。 – jfriend00
您是否曾尝试在远程服务器上运行'curl localhost:3000'并查看它是否返回任何内容? –
你去哪儿了?我们试图帮助你,你似乎已经消失了。 – jfriend00