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

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

前端核心代码:

  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. });

Socket.io文字直播聊天室的简单代码的更多相关文章

  1. Express+Socket.IO 实现简易聊天室

    代码地址如下:http://www.demodashi.com/demo/12477.html 闲暇之余研究了一下 Socket.io,搭建了一个简易版的聊天室,如有不对之处还望指正,先上效果图: 首 ...

  2. 利用socket.io构建一个聊天室

    利用socket.io来构建一个聊天室,输入自己的id和消息,所有的访问用户都可以看到,类似于群聊. socket.io 这里只用来做一个简单的聊天室,官网也有例子,很容易就做出来了.其实主要用的东西 ...

  3. 使用socket.io打造公共聊天室

    最近的计算机网络课上老师开始讲socket,tcp相关的知识,当时脑袋里就蹦出一个想法,那就是打造一个聊天室.实现方式也挺多的,常见的可以用C++或者Java进行socket编程来构建这么一个聊天室. ...

  4. AngularJS+Node.js+socket.io 开发在线聊天室

    所有文章搬运自我的个人主页:sheilasun.me 不得不说,上手AngularJS比我想象得难多了,把官网提供的PhoneCat例子看完,又跑到慕课网把大漠穷秋的AngularJS实战系列看了一遍 ...

  5. node+express+socket.io制作一个聊天室功能

    首先是下载包: npm install express npm install socket.io 建立文件: 服务器端代码:server.js var http=require("http ...

  6. Web jsp开发学习——网上直播聊天室的简单开发

    整个界面为chat.jsp: 如果用户没有登录,就不能进行聊天. 为将发言的句子传到页面上,要设置一个<iframe></iframe>虚拟框架,将allmessage.jsp ...

  7. Node+Express+MongoDB + Socket.io搭建实时聊天应用

    Node+Express+MongoDB + Socket.io搭建实时聊天应用 前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战 ...

  8. Node+Express+MongoDB + Socket.io搭建实时聊天应用实战教程(二)--node解析与环境搭建

    前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战.写教程一方面在自己写的过程中需要考虑更多的东西,另一方面希望能对node入门者有 ...

  9. Node+Express+MongoDB+Socket.io搭建实时聊天应用实战教程(一)--MongoDB入门

    前言 本文并不是网上流传的多少天学会MongoDB那种全面的教程,而意在总结这几天使用MongoDB的心得,给出一个完整的Node+Express+MongoDB+Socket.io搭建实时聊天应用实 ...

随机推荐

  1. Android项目-高考作文-使用ORMLite抽象公共的Dao层

    1, 定义统一的Dao接口 public interface IDao<T> { public abstract T getSingleById(int id); public abstr ...

  2. 为什么会存在using filesort

    当使用explain分析SQL时常常会遇到extra的其中一值为using filesort,如: PRIMARY KEY (`id`),   KEY `uid` (`uid`) explain se ...

  3. JAVA之旅(二十二)——Map概述,子类对象特点,共性方法,keySet,entrySet,Map小练习

    JAVA之旅(二十二)--Map概述,子类对象特点,共性方法,keySet,entrySet,Map小练习 继续坚持下去吧,各位骚年们! 事实上,我们的数据结构,只剩下这个Map的知识点了,平时开发中 ...

  4. Oracle中使用游标获取指定数据表的所有字段名对应的字符串

    操作步骤:打开PLSQL Developer后,直接执行下面的语句就可以出来 --Oracle中使用游标获取指定数据表的所有字段名对应的字符串 declare mytablename VARCHAR( ...

  5. iOS-导航头像缩放,支持点击回调

    在很多App中,经常存在一种需求就是,界面上下滚动时用户的头像也会跟着滚动,而用户头像在视图向上滚动一定范围时停留并在导航栏的位置 基本用法如下:1.单纯的实现这一效果: - (LEOHeaderVi ...

  6. ReactJs和React Native的那些事

    介绍 1,React Js的目的 是为了使前端的V层更具组件化,能更好的复用,它能够使用简单的html标签创建更多的自定义组件标签,内部绑定事件,同时可以让你从操作dom中解脱出来,只需要操作数据就会 ...

  7. (二十六)静态单元格(Cell)

    制作类似iOS系统设置的页面,如果使用代码来实现,将会比较麻烦,可以通过静态单元格技术方便的实现. 注意:静态单元格只支持TableViewController. 可以通过storyboard直接操作 ...

  8. Dynamics CRM 通过OData查询数据URI中包含中文的情况

    filter条件如下"?$filter=new_name eq '采购主管' and new_entityname eq 'new_purchaseenquiry' ",如果用这个 ...

  9. STL常用遍历算法for_each和transform的比较

    for_each()和transform()算法比较 1)STL 算法 – 修改性算法  for_each()  copy()  copy_backward()  transform()  merge ...

  10. 【翻译】提示18——如何决定ObjectContext的生命周期

    原文地址:http://blogs.msdn.com/b/alexj/archive/2009/05/07/tip-18-how-to-decide-on-a-lifetime-for-your-ob ...