Skip to content
Snippets Groups Projects
Commit 67e19394 authored by Jay Friendly's avatar Jay Friendly
Browse files

Setting up rooms in namespaces, so that each thread is part of its own room

parent 23f1c77b
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,11 @@
attach: function () {
init();
socket.on('connect', function () {
// Sign up for the room for this message.
socket.emit('room', drupalSettings.privateMessageThread.threadId);
});
socket.on("new private message", function () {
Drupal.PrivateMessages.getNewMessages();
});
......@@ -30,7 +35,7 @@
};
Drupal.AjaxCommands.prototype.privateMessageNodejsTriggerNewMessages = function () {
socket.emit("new private message");
socket.emit("new private message", drupalSettings.privateMessageThread.threadId);
};
}(Drupal, drupalSettings, io));
......@@ -12,23 +12,32 @@
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var threadChannel = io.of('/thread');
var threadChannel = io.of('/thread');
threadChannel.on('connection', function (socket) {
var threadId;
console.log('user connected');
socket.on('disconnect', function () {
console.log('user disconnected');
socket.on('room', function (room) {
threadId = room;
console.log("joining room: " + room);
socket.join(room);
});
socket.on('new private message', function () {
console.log('new private message received');
threadChannel.emit('new private message');
console.log("Sending private message to room: " + threadId);
threadChannel.to(threadId).emit('new private message');
});
socket.on('disconnect', function () {
console.log('user disconnected');
});
});
http.listen(8080, function () {
console.log('listening on *:8080');
});
}(require, console));
......@@ -230,6 +230,7 @@ class PrivateMessageThreadMessageFormatter extends FormatterBase implements Cont
$load_url->setOptions(['absolute' => TRUE, 'query' => ['token' => $load_token]]);
$element['#attached']['drupalSettings']['privateMessageThread'] = [
'threadId' => (int) $private_message_thread->id(),
'newMessageCheckUrl' => $new_url->toString(),
'previousMessageCheckUrl' => $prev_url->toString(),
'messageOrder' => $this->getSetting('message_order'),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment