Antoine's solution is the right direction. Keep all of your "routes" (endpoints) in one file, and interact with the various modules from there. This will keep your code much more flexible without adding much complexity, and will leave you more free to experiment with things, and even swap out socket.io later on if you so chose (sockjs is a pretty terrific alternative, for example).
On Sun, Jun 30, 2013 at 8:51 AM, Antoine van Wel <[email protected]>wrote: > Create separate "service" modules which are completely unaware of > socket.io, which accept hooks/callbacks; then in your socket.js wire them > together. > > For example for your chat, create a module which does the room creation / > chatting / joining etc and let it do callbacks whenever a room is created / > somebody says something / etc. This should keep your socket.js file down to > a minimum and at the same time lead to more flexible, reusable code. > > Then if your socket.js file is still too long you can further break it > down as suggested by Duncan, but personally I would keep the wiring in a > single file. > > > > Antoine > > > > > > > On Sun, Jun 30, 2013 at 12:38 PM, Duncan Wilkie < > [email protected]> wrote: > >> Pass the socket.io variable around as a parameter to other files / >> components >> var io = socket.io >> >> require('./component1.js')(io) >> >> ... >> // component1.js >> module.exports = function (io) { >> // logic >> } >> — >> Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone >> >> >> On Sun, Jun 30, 2013 at 10:40 AM, Mike Chen <[email protected]>wrote: >> >>> Hi guys, >>> >>> I'm pretty new to Node.JS and socket IO, so I was wondering if I could >>> get some guidance on project I'm working on. I would like to build a single >>> page multiplayer game that basically communicates solely through socket.IO. >>> >>> However, I am quickly seeing that my socket.js file is getting very >>> clumsy. I am using express to manage the MVC side of things, but I feel >>> like socket connections don't really fit in the MVC paradigm. >>> >>> I have read a bunch of tutorials on node JS and socket IO, but all of >>> them have small socket components. >>> >>> Essentially I am wondering how to break down a large socket.js file into >>> smaller more manageable components? For example, I have a chat room in the >>> page, as well as the game part, and some meta game aspects. I don't feel >>> like these all belong in the same socket.js file, but it doesnt seem clean >>> to divide them in separate files either because you need access to the >>> client and the socket object ( to emit to all users in a room lets say) >>> >>> Thanks >>> >>> >>> >>> -- >>> -- >>> Job Board: http://jobs.nodejs.org/ >>> Posting guidelines: >>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >>> You received this message because you are subscribed to the Google >>> Groups "nodejs" group. >>> To post to this group, send email to [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> For more options, visit this group at >>> http://groups.google.com/group/nodejs?hl=en?hl=en >>> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "nodejs" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- >> -- >> Job Board: http://jobs.nodejs.org/ >> Posting guidelines: >> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >> You received this message because you are subscribed to the Google >> Groups "nodejs" group. >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> For more options, visit this group at >> http://groups.google.com/group/nodejs?hl=en?hl=en >> >> --- >> You received this message because you are subscribed to the Google Groups >> "nodejs" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- konklone.com | @konklone <https://twitter.com/konklone> -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
