     @subscriptions.dispose()
 
   disconnect: ->
-    # @pairingChannel.trigger 'client-disconnected', {colour: @markerColour}
-    @pusher.disconnect()
+    @pairingChannel.trigger 'client-disconnected', {colour: @markerColour}
+    setTimeout((=> @pusher.disconnect()),500)
     _.each @friendColours, (colour) => @clearMarkers(colour)
     atom.views.getView(@editor).removeAttribute('id')
     @hidePanel()

      buffer.append(chunk)
      @triggerPush = true

    @pairingChannel.bind 'client-change', (events) =>
      console.log(events);
      _.each(events, (event) => @changeBuffer(event) )

    # @pairingChannel.bind 'client-disconnected', (data) =>
    #   @clearMarkers(data.colour)
    #   disconnectView = new AlertView "Your pair buddy has left the session."
    #   atom.workspace.addModalPanel(item: disconnectView, visible: true)

    @triggerEventQueue()
    @listenToBufferChanges()

    @buffer.onDidChange (event) =>
      return unless @triggerPush
      deletion = !(event.newText is "\n") and (event.newText.length is 0)
      @events.push({deletion: deletion, event: event, colour: @markerColour})

  triggerEventQueue: ->
