厄介な問題があります。それは、画面でnodejsを実行するのに問題があることです。画面を離れるのと同じくらい速く、ソケットが接続されていないため、次に接続する相手は、画面が再び開かれるまでエラーメッセージが表示されます。screen -R node
たとえば、画面が開くとすぐに、接続の受け入れが再開されます。
ただし、画面が閉じていて(バックグラウンドで実行されている)、誰かがすでにソケットを開いている場合は、新しい接続に応答し続けることに注意してください。
アプリケーションを再起動しようとすると、コマンドnode app
を使用して次のメッセージが表示されます。
module.js:340
throw err;
^
Error: Cannot find module '(unreachable)/square_defense/app'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
サーバーサイドコード:
var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server);
server.listen(3000);
app.get('/', function (req, res) {
console.log(__dirname);
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.on('user-message', function (data) {
console.log(data);
sendMessage.call(socket, data.message);
});
});
var sendMessage = function(message) {
this.emit('server-message', {message: message});
this.broadcast.emit('server-message', {message: message});
}
私はapp.jsからのnpm install app
ディレクトリのような多くのことを試しました。..
なぜ働きたくないのか理解できません。クラッシュしないテスト目的で使用できるサーバーが本当に必要です。
編集:これは暗号化されたホームフォルダと関係があると思いますか?
到達不能なフォルダが問題のある場所だと思います。エラー:モジュール' (到達不能) / square_defense/app'が見つかりません。しかし、なぜこれが起こっているのかわかりません。現在、Foreverでアプリケーションを実行しており、sshセッションを開始するとすぐに機能します。しかし、接続を終了してページをリロードするとすぐに。エラーが発生します。