Java NIO game server !

Hello!

Im developing an boardgames server for my boardgames, I will be using nio, as there will be no need for many threads as nio is non-blocking and can be read and write on a one non-blocking for loop.
I think i should start by asking few basic things about the ways how nio works and should be used on a server program.

at first, im planning ->
Clients have two socketchannels, one for server messages and one for game messages.
Server has tree socketchannels, but uses only two at the time, with every client, one for server messages and one for game messages.
There will be two types of game socketchannels, one fast and one slow, the fast one has 20 ms delay and slow one has 200 ms delay, after every socketchannel for loop.
slow game socketchannel will be used with turn based boardgames and fast game socketchannel will be used on my fast live games.
My server socket reads room, chat, join, leave messages, game sockets are not handled at all at server code, they just directly transfer data to room members.

is above ok for a basic server client build.


the problem with allowing clients to communicate directly with each other for the game is that you will never be able to stop cheating (at least that’s what I think you’re trying to do, at one point you say the server has a ‘game socket channel’ and at end you say the server will not have a ‘game socket channel’)

my server program!

Im sorry for my english, i have now build the first test drives, of my server, im building one socketchannel for client-server messages, like changing room, or main chat, and i will add two socketchannels for games, one fast and one slower, the fast reads nio at only 5-25 ms delay after nio for loop, and the slow game sockets read nio with 50-100 ms delay after for loop, i will later set the presice ms delay for both game socketchannels, i will also study later a bit of the basics of the selectors and iterators.

I currently has no problems with my code, i will use somewhat a 10 threads and 3 socketchannels, and game socketchannels are connected true server, but server wont handle thouee streams, server just directly sends all game socket data to others on the same rooms, so all game time data is handled at the applets.