Expressのスケルトンコードを作成し、bin/www.jsにてsocket.ioのオブジェクトを作成しました。
そのioオブジェクトをroutes/~~~.jsにて使いたいのですが、そのようなことを実現するにはどのようにすれば良いでしょうか。
javascript
1var app = require('../app'); 2var debug = require('debug')('sync:server'); 3var http = require('http'); 4 5/** 6 * Get port from environment and store in Express. 7 */ 8 9var port = normalizePort(process.env.PORT || '3000'); 10app.set('port', port); 11 12/** 13 * Create HTTP server. 14 */ 15 16var server = http.createServer(app); 17var io = require('socket.io')(server); //※このオブジェクトをroutes/~~~.jsにて使いたい 18 19/** 20 * Listen on provided port, on all network interfaces. 21 */ 22 23server.listen(port); 24server.on('error', onError); 25server.on('listening', onListening); 26 27/** 28 * Normalize a port into a number, string, or false. 29 */ 30 31function normalizePort(val) { 32 var port = parseInt(val, 10); 33 34 if (isNaN(port)) { 35 // named pipe 36 return val; 37 } 38 39 if (port >= 0) { 40 // port number 41 return port; 42 } 43 44 return false; 45} 46 47/** 48 * Event listener for HTTP server "error" event. 49 */ 50 51function onError(error) { 52 if (error.syscall !== 'listen') { 53 throw error; 54 } 55 56 var bind = typeof port === 'string' 57 ? 'Pipe ' + port 58 : 'Port ' + port; 59 60 // handle specific listen errors with friendly messages 61 switch (error.code) { 62 case 'EACCES': 63 console.error(bind + ' requires elevated privileges'); 64 process.exit(1); 65 break; 66 case 'EADDRINUSE': 67 console.error(bind + ' is already in use'); 68 process.exit(1); 69 break; 70 default: 71 throw error; 72 } 73} 74 75/** 76 * Event listener for HTTP server "listening" event. 77 */ 78 79function onListening() { 80 var addr = server.address(); 81 var bind = typeof addr === 'string' 82 ? 'pipe ' + addr 83 : 'port ' + addr.port; 84 debug('Listening on ' + bind); 85} 86
結果的に実現したい内容は、routes/~~~.jsにてゲームループを実装。
ゲームループにてクライアント側に処理後のキャラクター座標を送信したいと考えております。
・www.js内で上手く完結させる方法
・www.jsの外へioオブジェクトを持ち出す方法
更にもっといい方法などご存知の方が居ましたら、是非ご教授いただきたいです。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。