私が表現し、私のapp.jsは少し混雑してきていることを見つけることが新しいです。私はの線に沿って何かをしようとしExpress.jsには別のファイルのソケットイベントが含まれていますか?
io.sockets.on("connection", function(socket){
//Require socket event file here
});
以内にそれを、私のソケットイベントのすべてを取るフォルダ内の別のファイルにそれらを入れて含めることができる方法はあります:
require('./mysockets')(server);
およびその他のファイル行う際に:
var io = require("socket.io");
// declare module constructor that is passed the http server to bind to
module.exports = function(server) {
io.listen(server);
//My code here
};
私は、このインスタンスでは何かが足りないのですか? http://pastebin.com/zvs8aMjN
これは私が上記の操作を行うとき、私は、コンソールに取得していますエラーを示しています。私はペーストビンが含まれています。
EDIT:
は、それが使用されているかを示すために私のソケットイベントを追加しました。しかし私はインクルードはそれを破るように見える必要が、私のapp.jsから直接それを実行している場合、すべてのコードが動作確認されています。
console.log("Client connection, no username");
// ===============================================
// DISCONNECTION
// ===============================================
socket.on('disconnect', function(data) {
// Allows us to track if a unknown user has disconnected or if a known user has dosconnected
if(!socket.username) {
console.log("Client disconnected before username");
} else {
console.log("Player " + socket.username + " disconnected");
serverFunctions.lobbyCheck();
// Removes only one user
allUsers.splice(allUsers.indexOf(socket.username), 1);
}
// Calls update usernames function
serverFunctions.updateUsernames();
});
// ===============================================
// NEW PLAYER LOGIC
// ===============================================
// Player has connected
// Checks if username is already been used
socket.on("new user", function(data, callback){
// If it exists return false, else add it to array of allUsers
if (allUsers.indexOf(data) != -1) {
callback(false);
} else {
callback(true);
socket.username = data;
allUsers.push(socket.username);
// Tells all active users which users are active
serverFunctions.updateUsernames();
console.log("Player " + socket.username + " connected");
serverFunctions.lobbyCheck();
// Calls theplayer check in order to push through the player names client side
serverFunctions.playerCheck();
}
});
// ===============================================
// Game Start Logic
// ===============================================
// ===============================================
// CHAT LOGIC
// ===============================================
// Broadcasts a message
socket.on("send message", function(data){
io.sockets.emit("new message", {msg: data, user: socket.username});
});
});
これは私のsocketconnection上で起こる:app.jsで
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hjs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/users', users);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
あなたsocket.ioコードファイルのパスとは何ですか?どこapp.js –
は、私は現在試みとして根にあるように、それを変更しています。私はエラーのペーストビンを取得しています。 –
コードを表示しますか?どうやって使ってるの? app.jsとeventScokets.js –