Socket.io文字直播聊天室的简单代码

直接上代码吧,被注释掉的主要是调试代码,和技术选型的测试代码

  1. var app = require('express')();  
  2. var server = require('http').Server(app);  
  3.   
  4. server.listen(8080);  
  5.   
  6. app.get('/', function (req, res) {  
  7.   res.sendFile(__dirname + '/index.html');  
  8. });  
  9.   
  10.   
  11. var io = require('socket.io')(3000);  
  12. var beijing = io  
  13.   .of('/beijing')  
  14.   .on('connection', function (socket) {  
  15.     console.log("beijing connected")  
  16.     //console.log(socket)  
  17.     socket.on('disconnect', function () { console.log("disconnect") });  
  18.     //socket.emit('item', { news: 'item' });  
  19.   });  
  20. //var redis = require('socket.io-redis');  
  21. //io.adapter(redis({ host: '192.168.20.16', port: 6379 }));  
  22.   
  23. //var io_emitter = require('socket.io-emitter')({ host: '192.168.20.16', port: 6379 });  
  24. /*setInterval(function(){ 
  25.   //io_emitter.emit('time', new Date); 
  26. }, 2000);*/  
  27.   
  28. var redis = require('redis')  
  29. subcriber = redis.createClient("redis://:redispassword@192.168.1.1:6379/0")  
  30. subcriber.on("message",function(channel,message){  
  31.   console.log(message);  
  32.   beijing.emit("message",message);  
  33. })  
  34.   
  35. subcriber.subscribe("pub_comments")  
  36. /* 
  37. var SSE = require('sse-nodejs'); 
  38.  
  39. var express = require('express'); 
  40.  
  41. var app = express(); 
  42.  
  43. app.get('/', function (req,res) { 
  44.    res.sendFile(__dirname+ '/index.html') 
  45. }); 
  46.  
  47. app.get('/time', function (req,res) { 
  48.     var serverSent = SSE(res); 
  49.  
  50.     serverSent.sendEvent('time', function () { 
  51.         return new Date 
  52.     },1000); 
  53.     serverSent.disconnect(function () { 
  54.         console.log("disconnected"); 
  55.     }) 
  56.  
  57.     //serverSent.removeEvent('time',2000); 
  58.  
  59. }); 
  60.  
  61. app.listen(3333); 
  62. */  

前端核心代码:

  1. var socket = io.connect('http://servername:3000/beijing');  
  2. socket.on('message', function (data) {  
  3.   $scope.messages.push(data)//此处使用了angularjs  
  4.   $scope.$apply()  
  5.   console.log(data)  
  6.   //socket.disconnect()  
  7.   //socket.emit('my other event', { my: 'data' });  
  8. });  
原文地址:https://www.cnblogs.com/dhcn/p/7124738.html