一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

利用nodejs+websocket的实时聊天系统

时间:2017-05-21 编辑:简简单单 来源:一聚教程网

本文属于nodejs+websocket实时聊天系统的改进版本,具体内容如下

client.html:

      Document      连接 断开

 

   发送 
   


 只能说界面丑陋忽略它。
server.js:

varws = require("nodejs-websocket");

console.log("开始建立连接...");

varstr1 =null, str2 =null, clientReady =false, serverReady =false;

vara = [];

varserver = ws.createServer(function(conn) {

 conn.on('text',function(str) {

 a.push(str);

 if(!clientReady) {

  if(a[0] === str) {

  str1 = conn;

  clientReady =true;

  str1.sendText("欢迎你"+ str);

  

  }

 }elseif(!serverReady) {

  if(str.indexOf('close') >= 0) {

  a.splice(2, 1);

  clientReady =false;

  str1 =null;

  return;

  }

  if(a[1] === str) {

  str2 = conn;

  serverReady =true;

  str2.sendText("欢迎你"+ str);

  str1.sendText(str +"在线啦,你们可以聊天啦");

  return;

  }

 }elseif(clientReady && serverReady) {

  str2.sendText(str);

  str1.sendText(str);

  if(str.indexOf('close') >= 0) {

  a.splice(2, a.length);

  varlen = a.length;

  for(vari = 0; i < len; i++) {

   // 定位该元素位置

   if(str.indexOf(a[i]) >= 0) {

   a.splice(i, 1);

   if(i == 0) {

    str1 = str2;

   }

   serverReady =false;

   str2 =null;

   return;

   }

  

  }

  }

 }

  

  

 })

  

 conn.on("close",function(code, reason) {

 console.log("关闭连接");

 clientReady =false;

 serverReady =false;

 })

 conn.on("error",function(code, reason) {

 console.log("异常关闭");

 });

}).listen(8082);

console.log("websocket连接完毕")

简单的截图说明一下:

 

开启服务,相同页面执行两遍,就可以聊天啦。反正过程就是这样。就是还有一个大的问题。比如我a断开连接了,只有b一个人在连接巨人b还能发信息,可以发信息算可以吧。居然b自己接收自己的信息。那就不能忍了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。

热门栏目