在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → nodejs 聊天室 源码下载

nodejs 聊天室 源码下载

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:7.43M
  • 下载次数:12
  • 浏览次数:300
  • 发布时间:2016-12-05
  • 实例类别:一般编程问题
  • 发 布 人:zhurunlai
  • 文件格式:.rar
  • 所需积分:10
 相关标签: 聊天

实例介绍

【实例简介】
【实例截图】

【核心代码】

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');
var http = require('http').Server(express);
var io = require('socket.io')(http);

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine('ejs', require('ejs-mate'));

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);
global.userList={};

io.on('connection',function (socket) {
    console.log('监听用户');
    socket.on('login',function (obj) {
        socket.name = obj.id;
        if (!global.userList.hasOwnProperty(obj.id)) {
            global.userList[obj.id] = {username: obj.username,id:obj.id};
        }
        io.emit('loginUser', {username: global.userList});
        console.log(userList);
        console.log(obj.username   '加入了聊天室!');
    });

    //发布审核
    socket.on('checkmessage', function (obj) {
        console.log("fuck");
        if (obj.level == "66") {
            io.emit('message', obj);
        }
        else {
            io.emit('check_message', obj);
        }
    });

//监听用户发布聊天内容
    socket.on('message', function (obj) {
        io.emit('message', obj);
        console.log(obj.username   '说:'   obj.content);
    });

    //监听用户退出
    socket.on('disconnect', function () {

        //将退出的用户从在线列表中删除
        if (userList.hasOwnProperty(socket.name)) {
            //退出用户的信息
            var obj = {userid: socket.name, username: userList[socket.name].username};

            //删除
            delete userList[socket.name];

            //向所有客户端广播用户退出
            io.emit('logout', {userList: userList, user: obj});
            console.log(obj.id   '退出了聊天室');
        }
    });
    socket.on('updatename',function (obj) {
        if (global.userList.hasOwnProperty(obj.id)) {
            var id=obj.id;
            console.log();
            delete userList[obj.id];
            global.userList[obj.username] = {username: obj.username,id:id};
            io.emit('loginUser', {username: global.userList});
            console.log(obj.id "发布删除监听--------------------》");
        }


        console.log(userList);
    });

});


// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});

http.listen(8687,function () {
    console.log("runnning server in 8687");
});

module.exports = app;

标签: 聊天

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警