一、设计要求:
1)用户应通过用户名,密码登录聊天室
2)聊天室可以显示所有在线用户
3)在每一条聊天内容之前,显示发出这条聊天内容的用户名。
4)聊天室可以用web,客户端,或者纯文本方式实现。
5)当用户进入和离开聊天室时,系统会在聊天室里广播。

二、功能实现
1、登录功能:
提前设置一个含有用户名和密码的对象作为数据库,点击登录时通过事件绑定获取两个输入框的内容,遍历数据库每个数据将用户名和密码同时匹配的重定向到首页,同时将用户名通过通过URL参数传递给首页。如果遍历完不匹配,则弹出警示框:“昵称或密码错误”。
2、显示用户功能:
每次用户进入聊天室时将用户名存储于服务器端的一个users数组,再将这个包含所有在线用户的的数组发送给所有用户,在客户端先删去列表里所有在线用户,再将最新接收到的users数组重新渲染。当用户离开的时候,同样通过更新数组删去该用户,再发送给其他客户端重新渲染。
3、显示用户名:
定义一个文本输入框,点击按钮时获取输入框的内容,定义一个对象,包含内容与该用户名,同时发送给服务器端,由服务器端发送给其他客户端,客户端将接收到的内容和用户名添加到聊天显示框中。
4、登入登出提示:
在用户登入登出时与服务器发起通信,将名字发送给服务器端,服务器端再发送给其他客户端,客户端将接收到用户名添加到聊天显示框中。

三、效果图


代码:https://github.com/cherublin/socket

JS实现简易多人在线聊天室相关推荐

  1. rudesocket如何使用_[WebSocket入门]手把手搭建WebSocket多人在线聊天室(SpringBoot+WebS...

    前言 本文中搭建了一个简易的多人聊天室,使用了WebSocket的基础特性. 源代码来自老外的一篇好文: 本文内容摘要: 初步理解WebSocket的前后端交互逻辑 手把手使用 SpringBoot ...

  2. 如何简单的创建一个多人在线聊天室

    学习目标: 在本教程中,我们将要使用PHP和jQuery创建一个简单的在线聊天工具. 这种实用性的模块对于你想要有实时在线客户支持系统的网站可以说是完美. 废话不多说直接开始. 步骤1:HTML的代码 ...

  3. Unity联网之使用Socket简单实现多人在线聊天室(一)

    「前言」 之前在一直在写lua联网等一些知识,虽然lua重要,但C#联网也必不可少是吧.所以呢,本篇博客就主要介绍如何使用Unity和C#在实现多人在线聊天室. 服务器 客户端工作原理:(通过消息类型 ...

  4. 多人在线聊天室,可私聊可发表情包哟~

    这学期我们网络编程这门课主要是Window Socket,并且还是用我们没学过C++实现的,不过值得庆幸的是老师上课讲的很仔细,并且他讲课主要是讲思想,实现思路,最后老师没有限制我们课程设计使用的语言 ...

  5. Python+django网页设计入门(20):使用WebSocket创建多人在线聊天室

    2019年3月8日-10日公众号送书活动:中小学生Python课应该学什么 ================ 前导课程: Python+django网页设计入门(19):创建新模型扩展自带用户表的字段 ...

  6. java怎么实现踢掉在线用户_Java多人在线聊天室(3)— 踢人下线功能

    作为一个聊天室,肯定会有很多人在里面聊天,那么要是有人里面捣乱怎么办?直接踢人不解释. 我们在创建数据库的时候就有这样的考虑,所以我们的账户有两种,一种是管理员,一种是普通用户. 打开的数据库!我们可 ...

  7. MFC多人在线聊天室

    我已经在我的资源里上传了这个聊天室的代码了 基于MFC的C++的select模型的TCP聊天室 采用select网络模型,支持多人同时登陆,功能有上线.下线.群聊.私聊 使用CjsonObject进行 ...

  8. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-完整应用例子-在线聊天室系统-代码解析...

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍一文之中我们对AgileEAS.NET S ...

  9. java 在线聊天室_一万人一起在线聊天的聊天室,怎样用Java实现?

    原标题:一万人一起在线聊天的聊天室,怎样用Java实现? 今天逛论坛的时候发现一个Java Socket实现多人聊天室的源码,感觉写得还不错,至少算个有模有样的聊天工具.虽然有点简单,但是也算是一个项 ...

最新文章

  1. oracle的quit命令,Oracle的启动和关闭
  2. python 命令行参数-Python 命令行参数解析
  3. 精品教程--Android实战系列源码与教程
  4. sqlwarning mysql_mysql提示[Warning] Invalid (old?) table or database name问题的解决方法
  5. 定时器mia是什么意思_MIA的完整形式是什么?
  6. Android4.4的init进程
  7. 华为云GuassDB(for Redis)发布全新版本推出:Lua脚本和SSL连接加密
  8. react 父子传值_React父子组件传值
  9. matlab 异步程序代码,正弦波电压源供电时三相异步电动机系统动态运行MATLAB仿真源程序...
  10. 在线数据库设计ERD-ONLINE
  11. STM32官方封装库下载方法
  12. 微信小程序修改BUTTON点击态样式
  13. 【Spring系列】 Ioc 实现原理,Spring获取bean的方式,创建对象的方式和懒加载
  14. 已知华氏温度f c语言,编程题:已知两种温度的换算公式C=(5/9)(F-32),试编写一个程序输入华氏度F,输出摄氏度。...
  15. c语言 谭浩强第五版第五章习题第17题 乒乓球比赛
  16. windows下maven打包镜像并推送docker服务器
  17. 西北大学第四届程序设计竞赛新生赛 J 八意永琳的药房
  18. 让你彻底明白:HTTPS安全通信机制
  19. 华为 无线AP与AC详细配置 你学废了吗?
  20. linux启动时卡在ok界面,按照Xilinx_Answer_72076,ZCU106上Linux启动时卡在bootconsol...

热门文章

  1. Python微信操控(itchat)
  2. HBuilder云打包ios证书申请流程
  3. python提取矩阵元素_python-如何获取矩阵中某个元素周围的所有...
  4. 剑指offer(C++)-JZ26:树的子结构(数据结构-树)
  5. mysql查询每个部门工资最高的员工信息_SQL简单面试题:查询每个部门工资最高的前10位员工...
  6. 2021年全球企业级区块链应用有哪些?主要使用哪些技术平台?
  7. 百度攻占物联网城池,ABC战略全面布局
  8. uniapp h5端兼容pc端
  9. 密码学 | 期末考前小记
  10. HTML5期末大作业:美食网站设计——我的餐厅食品网页(8页) HTML+CSS+JavaScript