get_handler = (args, out, request, url_parts) ->
- console.log "get handler: ", args
unless args.game?.length
out.writeHead 404, "Content-Type": 'text/plain'
out.end 'Missing (or empty) "game" argument'
answer_soon game # in case there's something queued already
set_handler = (args, out, request, url_parts) ->
- console.log "set handler: ", args
unless args.game?.length
out.writeHead 404, "Content-Type": 'text/plain'
out.end 'Missing (or empty) "game" argument'
game.process_messages JSON.parse args.messages
out.writeHead 200, "Content-Type": 'text/plain'
- out.end 'ok'
+ out.end '{"status":0,"text_status":"Success"}'
# don't call this directly, call answer_soon instead
answer_now = (game) ->
queue = game.p2_queue
game.p2_waiter = false
game.p2_queue = []
- waiter.writeHead 200, 'Content-Type': 'text/javascript'
- waiter.end JSON.stringify queue
+ timeout 2000, -> # FIXME remove this delay for player 2 (just here to test lag handling)
+ waiter.writeHead 200, 'Content-Type': 'text/javascript'
+ waiter.end JSON.stringify queue
# this marks a game as "dirty" and makes sure there's exactly one timeout
# that'll respond to any clients that are waiting, and now have messages.
unless message[1] is 'p2'
@p2_queue.push message
answer_soon this
- console.log this
new_game = (id) ->
game = games[id] = model.new 'server'
req.on 'end', ->
query = url_parts.query
post_args = querystring.parse data
- console.log data, post_args
for key, parg of post_args
query[key] = parg
return set_handler query, res, req, url_parts