add messaging

Change-Id: I9f7b5c73e25774751a2c55ea6c2575feca5ebfd5
diff --git a/app.js b/app.js
index b8c09f4..74c58b4 100644
--- a/app.js
+++ b/app.js
@@ -118,7 +118,15 @@
     // app.use(app.router)
     app.use(cors(corsOptions))
 
-    const jami = new JamiDaemon()
+    const jami = new JamiDaemon((account, conversation, message) => {
+        console.log("JamiDaemon onMessage")
+
+        if (conversation.listeners) {
+            Object.values(conversation.listeners).forEach(listener => {
+                listener.socket.emit('newMessage', message)
+            })
+        }
+    })
     const apiRouter = new JamiRestApi(jami).getRouter()
 
     /*
@@ -293,6 +301,24 @@
         console.log(`saving sid ${socket.id} in session ${session.id}`)
         session.socketId = socket.id
         session.save()
+
+        socket.on("conversation", (data) => {
+            console.log(`io conversation`)
+            console.log(data);
+            if (session.conversation) {
+                console.log(`disconnect from old conversation ${session.conversation.conversationId}`)
+                const conversation = jami.getConversation(session.conversation.accountId, session.conversation.conversationId)
+                delete conversation.listeners[socket.id]
+            }
+            session.conversation = { accountId: data.accountId, conversationId: data.conversationId }
+            const conversation = jami.getConversation(data.accountId, data.conversationId)
+            if (!conversation.listeners)
+                conversation.listeners = {}
+            conversation.listeners[socket.id] = {
+                socket, session
+            }
+            session.save()
+        })
     })
 
     return server