基于HTML+jquery+Node.js建立在线聊天室

本文介绍了如何使用HTML、jQuery和Node.js创建一个简单的在线聊天室。通过Node.js搭建后端服务器,HTML和jQuery实现前端交互。虽未深入美化界面,但提供了基本的代码示例。文章指出存在用户名重复和空用户名警告后仍能运行的问题,并邀请读者优化。作者还分享了遇到的困难和对他人的感谢。
摘要由CSDN通过智能技术生成

基于HTML+jquery+Node.js建立在线聊天室

如题,建立一个基于HTML+JS+Node.js的在线聊天室,使用的编译器:RJ texted

后端建立(Node.js)

开头第一句: nodejs-websocket是Node.js中自带的模板包,但是要自己下载。很简单的cmd指令,在node.js的文件界面,输入以下指令,Node.js会自己下载,然后再Node.js文档中的node-moudules中就可以找到对应的文档。

在这里插入图片描述
完成以上步骤,就可以使用编译器进行编译。废话不多说,直接上码

var ws = require("nodejs-websocket") // require 'nodejs-websocket' modules
var msg=null; // initialize msg
var x=0; // used in detect userID
var y=0; // used in PM
var username='';
var userNameObject={};
var number =0;
var AllUserData = new Array();
var AUsername = new Array();
console.log("Start to connect...");
var server = ws.createServer(function (connect) {	
    connect.on("text",
    function(msg){
        if(msg)
        {
            if(msg.slice(0,7)=='userID:') // detect user ID
            {
        			 number++;
                username=msg.slice(7);
                AllUserData.push({ // Store User information in Server
			            'id':username,
			            'ws':connect
			        });
			       AUsername.push(username);
                userNameObject[username]=connect;
                server.connections.forEach(function (conn) //Announce user come in
                {
	 				     console.log("connection : " + username)
                    conn.sendText('System'+'userID'+'Welcome '+username+' Join in the chating room. ' + 'Now, here is ' + number);
                })
            }
            else{
            	var Touser = msg.split("|")[1];
            	var Msg = msg.split("|")[0];
               for(x in userNameObject){// send the information in the chatting room
                    if(connect==userNameObject[x]){
	                    		server.connections.forEach(function (conn) {
        							console.log(x + ' > ' + Touser + ' : ' + Msg);
	                            conn.sendText(x + 'userID' + Msg + 'To' + Touser );
	                        })
                    }
                }			
            }
        }
    });
	 connect.on("close", function (code, reason) { // Disconnect Server and detect
	 		number--;
	 		var dcname;
	 		for (var i=0 in AllUserData) {
         	dcname = AllUserData[i].id;
            if (AllUserData[i].ws == connect) {
            	 server.connections.forEach(function (conn) {
                		conn.sendText( 'System'+ 'userID' + dcname + ' has disconnected in this chatting room! '+ ' Now, here is ' + number);
               		console.log("Connection : " + dcname + " closed")
            	 		delete AllUserData[i];
                })
			 		if(number == 0){// if there is no server the
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值