Browse Source

added chat

Dennis Mårtensson 12 years ago
parent
commit
226ef3af16
2 changed files with 66 additions and 7 deletions
  1. 30 0
      example/index.html
  2. 36 7
      example/server.js

+ 30 - 0
example/index.html

@@ -121,6 +121,35 @@
         })
       }
 
+      function initChat() {
+        var input = document.getElementById("chatinput");
+        var room = window.location.hash.slice(1);
+        var color = "#"+((1<<24)*Math.random()|0).toString(16);
+
+        input.addEventListener('keydown', function(event) {
+          var key = event.which || event.keyCode;
+          if (key === 13) {
+            rtc._socket.send(JSON.stringify({
+              "eventName": "chat_msg",
+              "messages": input.value,
+              "room": room,
+              "color": color
+            }), function(error) {
+              if (error) {
+                console.log(error);
+              }
+            });
+            addToChat(input.value);
+            input.value = "";
+          }
+        }, false);
+        rtc.on('receive_chat_msg', function(data) {
+          console.log(data.color);
+          addToChat(data.messages, data.color.toString(16));
+        });
+      }
+
+
       function init() {
         if(PeerConnection){
           rtc.createStream({"video": true, "audio": true}, function(stream) {
@@ -155,6 +184,7 @@
         });
         initFullScreen();
         initNewRoom();
+        initChat();
       }
       
       window.onresize = function(event) {

+ 36 - 7
example/server.js

@@ -1,9 +1,6 @@
 var app = require('express').createServer();
 var webRTC = require('webrtc.io').listen(8001);
 
-var colors = {};
-
-
 //When connectiong to nodejitsu
 //app.listen(80);
 //When using localhost
@@ -22,16 +19,48 @@ app.get('/webrtc.io.js', function(req, res) {
 });
 
 
-webRTC.rtc.on('connection', function(rtc) {
+webRTC.rtc.on('connect', function(rtc) {
   //Client connected
   console.log('connection');
 
-  rtc.on('send_answer', function() {
+  rtc.on('send answer', function() {
     //answer sent
-    console.log('send_answer');
+    console.log('send answer');
   });
 
   rtc.on('disconnect', function() {
     console.log('disconnect');
   });
-});
+
+  rtc.on('chat_msg', function(data, socket) {
+    var roomList = rtc.rooms[data.room] || [];
+    console.log(roomList);
+
+    for (var i = 0; i<roomList.length; i++) {
+      
+      var socketId = roomList[i];
+
+      console.log(socketId);
+
+      if (socketId == socket.id) {
+        continue;
+      }
+      else {
+        var soc = rtc.getSocket(data.room, socketId);
+
+        if (soc) {
+          console.log('chat_msg send');
+          soc.send(JSON.stringify({
+            "eventName": "receive_chat_msg",
+            "messages": data.messages,
+            "color": data.color
+          }), function(error) {
+            if (error) {
+              console.log(error);
+            }
+          });
+        }
+      }
+    }
+  });
+});