-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