zoukankan      html  css  js  c++  java
  • 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. });  
  • 相关阅读:
    JavaEE中Filter实现用户登录拦截
    【Tomcat】如何注册Tomcat到Window Service服务
    案例分析:项目组内踢皮球事件
    最大子序列求和问题
    《游戏脚本的设计与开发》-第一部分总结 文字脚本的功能扩展和一个游戏测试
    ajax异步请求实例
    创建用于编译和运行Java程序的批处理文件
    Codeforces Round #189 (Div. 2)
    新的研究方向
    怎样在android实现uc和墨迹天气那样的左右拖动效果
  • 原文地址:https://www.cnblogs.com/dhcn/p/7124738.html
Copyright © 2011-2022 走看看