Mensajes privados usando sockjs-tornado

He implementado la función de chat usando sockjs-tornado y podría almacenar los mensajes en RethinkDB.

¿Podría ayudarme a establecer un canal privado para la mensajería en sockjs-tornado? (Me refiero a conversación privada / uno a uno)

A continuación se muestra la función on_message en mi código del lado del servidor:

def on_message(self, message):
    str=message
    mg=str.split('#:#')
    sender=1 # This is the sender user id
    receiver=2 #This is the receiver user id - I need to implement session variables to have these id's so that I can use it here this way
    ts=r.expr(datetime.now(r.make_timezone('00:00')))
    connection = r.connect(host="192.x.x.x")
    r.db("djrechat").table('events').insert({"usrs":mg[0],"msg":mg[1],"tstamp":ts,"snder":sender,"rcver":receiver}).run(connection)
    log.info(message)
    self.broadcast(self.participants, '{} - {}'.format(self.stamp(),message))

Actualmente esto se está transmitiendo a todos los clientes conectados. Es posible que deba tener una identificación de canal y enviar un mensaje solo a los dos clientes que tendrán la misma identificación de canal, pero ¿cómo lo implemento o hay alguna solución mejor para esto?

En el lado del cliente, tengo debajo de JavaScript:

      function connect() {
        disconnect();
        conn = new SockJS('http://localhost:8080/chat', ['websocket','xhr-streaming','iframe-eventsource','iframe-htmlfile','xhr-polling','iframe-xhr-polling','jsonp-polling']);
        //log('Connecting.....');
        conn.onopen = function() {
        //  log('Connected. (' + conn.protocol + ')');
        log('Connected.');
        };

        conn.onmessage = function(e) {
          log(e.data);
        };

        conn.onclose = function() {
          log('Disconnected.');
          conn = null;
        };
      }

Estoy usando Python 3.4 - Django 1.8.4 y Rethinkdb

Respuestas a la pregunta(2)

Su respuesta a la pregunta