diff --git a/dev/client/views/lobby.coffee b/dev/client/views/lobby.coffee index 2419038..80925ee 100644 --- a/dev/client/views/lobby.coffee +++ b/dev/client/views/lobby.coffee @@ -15,12 +15,12 @@ class LobbyView extends Backbone.View #Listen to the server @communicator.on 'message:new', @handleServerMessage - KeyboardJS.bind.key 'enter', @newMessage + KeyboardJS.bind.key 'enter', @newMessage, () -> + @$el.find( 'textarea:focus' ).val '' #Add new message to the chat addMessage: ( model ) => console.log "Lobby: New message" - console.debug msg msg = @messageTemplate message: model.toJSON() @$el.find( '.chat ul' ).append msg @@ -55,8 +55,7 @@ class LobbyView extends Backbone.View render: => msgs = @messagesTemplate messages: @collection.toJSON() - console.debug msgs - + @$el.find( '.chat ul' ).html msgs window['LobbyView'] = LobbyView diff --git a/dev/server/communicator.coffee b/dev/server/communicator.coffee index a0b919f..5d07576 100644 --- a/dev/server/communicator.coffee +++ b/dev/server/communicator.coffee @@ -11,7 +11,9 @@ message passing to and between clients. class Communicator constructor: ( @app, @channel ) -> self = @ - _.extend @, Backbone.Events + @com = {} + + _.extend @com, Backbone.Events @connected = 0 @clients = {} @@ -51,11 +53,13 @@ class Communicator @clients[ client.getId() ] = client socket.on 'message:add', ( data ) -> - socket.broadcast.to( socket.getChannel() ).emit 'message:new', data + socket.broadcast.to( client.getChannel() ).emit 'message:new', data + #client want to join a channel socket.on 'join:channel', ( channel, fn ) -> data = socket.handshake.session + #leave a channel user is currently conencted to @clientLeaveChannel client @clientJoinChannel client, channel @@ -71,6 +75,8 @@ class Communicator data.currentChannel = null + setInterval @ping, 1000 + clientLeaveChannel: ( client ) -> channel = client.getChannel() @@ -90,16 +96,14 @@ class Communicator clients = @sockets.clients() ping = ( client ) -> - data = socket.handshake.session startTime = new Date() - client.volatile.emit 'ping', 1, -> + client.emit 'ping' + client.once 'pong', -> - #compute the lag, save it - stopTime = new Data() + #compute the lag + stopTime = new Date() lag = ( stopTime - startTime ) / 2 - data.lag = lag - data.save() #inform client about the lag client.emit 'lag', lag