关于使用Node.js和Socket.io的聊天应用程序

时间:2017-08-24 10:59:00

标签: node.js socket.io

我是node.js和socket.io中的新手需要帮助。实际上我必须创建一个聊天应用程序,它是一种客户支持,其中管理部分将在那里,多个用户可以与管理员聊天并解决他们的查询。 目前我已经构建了一个简单的聊天应用程序,其中多个用户可以打开该URL打开聊天框并可以与其他人聊天。请让我知道如何集成管理面板和多个用户聊天请求的任何资源或提示。 以下是我为多个用户创建聊天系统的代码。

服务器端代码

var express = require('express');

module.exports= function(app, io){  

    app.get('/',function(req,res){
        res.render('home');
    });


    // Initialize a new socket.io application, named 'chat'
    var chat = io.on('connection', function (socket){
        connections.push(socket);
        console.log("Connected: %s sockets connected", connections.length);

        socket.on('join',function(data){
            socket.join(data);
            rooms.push(data);
            console.log(rooms.length);
        });

        //Disconnect
        socket.on('disconnect',function(data){
            connections.splice(connections.indexOf(socket),1);
            console.log("Disconnected: %s sockets connected", connections.length);
            rooms.pop();
            console.log(rooms.length);
        });

        socket.on('sendMsg',function(data){
            // console.log("this " +data.message);
            // console.log("this " +socket.username);
            if(rooms.length<=2){
                io.emit('newmsg',{msg:data.message,user:socket.username});
            }
            else
            {
                console.log('User Limit Reached');
            }
        });

        socket.on('login',function(data){
            // console.log(data);
            // callback(true);
            socket.username=data.user;
            users.push(socket.username);
            // console.log(users);
        });

    });

}

客户端代码

 // $(function(){

  //connect to socket
  var socket=io();

  var id=12345;
  // on connection to server get the id of person's room
  socket.on('connect', function(){
    console.log('connected');
    socket.emit('join',id);
  });


// });

function sendMsg()
{
  var msg=$(".chat_input").val();

  // var name=sessionStorage.getItem('userName');
  socket.emit('sendMsg',{message:msg});
}

socket.on('newmsg',function(xyz){

  var tt='';

  var sessionUser=sessionStorage.getItem('userName');

  //For Date
  var currentTime = new Date(),
 hours =currentTime.getHours(),
 minutes = currentTime.getMinutes();

  if(sessionUser==xyz.user)
  {
    tt='base_sent';
  }
  else
  {
    tt='base_receive';
  }


      chatHtml ='<div class="row msg_container '+tt+'"">';
      if(tt=='base_receive'){
      chatHtml += '<div class="col-md-2 col-xs-2 avatar"></div>';}
      chatHtml +='<div class="col-md-10 col-xs-10 chatmsg">';
      chatHtml +='<div class="messages msg_sent">';
      chatHtml +='<b>'+xyz.user+'</b>';
      chatHtml +='<p>'+xyz.msg+'</p>';
      chatHtml +='<time datetime="2009-11-13T20:00">'+hours+':'+minutes+'</time>';
      chatHtml +='</div>';
      chatHtml += '</div>';
      if(tt=='base_sent'){
      chatHtml += '<div class="col-md-2 col-xs-2 avatar"></div>';}
      chatHtml += '</div>';
      chatHtml += '</div>';

    // $('.msg_container').last().after(chatHtml).fadeIn(1000);

    $('.msg_container_base').append(chatHtml);
    var msg=$(".chat_input").val('');
    sessionStorage.setItem('chatBody', chatHtml);
    $(".msg_container_base").animate({ scrollTop: $(document).height()-$(window).height() },1000);
});

0 个答案:

没有答案
相关问题