分为客户端和服务端,客户端就是一个简单的html页面,服务端使用node进行编写。具体代码如下

index.html

<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title>websoket</title>
</head>
<body><h1>chat room</h1><input type="text" id="msg" /><button id="send">发送</button><script type="text/javascript">var websocket = new WebSocket("ws://127.0.0.1:3001/");function showMsg(str){var div = document.createElement('div');div.innerHTML = str;document.body.appendChild(div)}websocket.onopen=function(){console.log("open");// 用户发送文字document.getElementById('send').onclick = function() {var txt = document.getElementById('msg').value;if (txt) {websocket.send(txt);}}}websocket.onclose = function() {console.log("close");}websocket.onmessage = function(e) {console.log(e.data);showMsg(e.data);}</script>
</body>
</html>

server.js

var ws = require("nodejs-websocket"). // 引入webSocket模块var port = 3001;var clientCount = 0;  // 用来区分不同的用户var server = ws.createServer(function (conn) {console.log("New connection")clientCount++  // 新建一个webScoket连接就加一,保证用户名唯一性conn.nickname = "user" + clientCount// 用户进入,广播给所有的用户broadcast("******* "+conn.nickname + " comes in *******");conn.on("text", function (str) {console.log("Received "+str)broadcast(conn.nickname + " say: " + str)})  // 用户发送文字,广播给所有的用户conn.on("close", function (code, reason) {broadcast("******* " + conn.nickname + " left *******");}) // 用户离开,广播给所有的用户conn.on("error", function(err) {console.log("error: "+err);})
})// 端口监听
server.listen(port,'0.0.0.0',()=>{console.log('websocket服务启动-使用端口',port);
});console.log("websocket server listening on " + port);// 遍历所有的连接进行遍历发送文字
function broadcast (str) {server.connections.forEach(function (connection) {connection.sendText(str)})
}

使用方法

创建index.htmlserver.js文件,在server文件目录下npm init初始化package.json文件,并安装nodejs-websocket

npm install nodejs-websocket --save -D

启动server.js

node server.js

多开几个index.html页面就能体验到效果了

前端websocket实现简易聊天室相关推荐

  1. 基于Node.js + WebSocket 的简易聊天室

    代码地址如下: http://www.demodashi.com/demo/13282.html Node.js聊天室运行说明 Node.js的本质就是运行在服务端的JavaScript.Node.j ...

  2. 原创 回归前端学习第21天-实现俄罗斯方块小游戏3(深入了解Websocket~优化简易聊天室)

    对昨天的简易聊天室进行优化 增加一个mes对象,将传送的数据放在对象里 增加一个mes对象,将传送的数据放在对象里 wsServer.js中替换代码 broadcast(conn.nickname + ...

  3. Vue3 -- 基于Websocket实现简易聊天室

    文章目录 标题 代码地址 表情包资源 chat.data.ts index.vue 标题 接上一篇博文 这里使用 Vue3 + Typescript + Websocket 实现在线聊天功能的前端部分 ...

  4. webSocket——Vue2简易聊天室

    WebSocket原生实现 WebSocket-Vue2 WebSocket-Vue3 Vue2版本实现 前端实现 目录结构 login.vue 登录 <template><div& ...

  5. websocket实现简易聊天室

    websocket支持全双工通信,也就是客户端和服务端双向通信.以前都是通过http轮询的方式实现实时的,这非常耗性能.Websocket不仅能节省资源和带宽,还能实现长链接的作用 前端通过创建Web ...

  6. 前端websocket打造实时聊天室

    文章目录 前言 1.登陆页面 1.1 entry.html 1.2 entry.js 2.聊天页面 2.1 index.html 2.2 index.js 3.nodejs搭建的服务器 4.目录结构 ...

  7. WebSocket——vue3简易聊天室

    WebSocket原生实现 WebSocket-Vue2 WebSocket-Vue3 前端实现 目录结构 登录(LoginView.vue) <template><div clas ...

  8. nodejs websocket 实现简易聊天室功能

    文章目录 1. 服务端 app.js 代码 2. 客户端 app.html 代码 3. 样式代码 app.css 4. nodemon 辅助开发 首先说明,以下代码都是基于 Nodejs+webSoc ...

  9. Java WebSocket实现简易聊天室

    一.Socket简介 Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求.Socket的英文原义是"孔"或 ...

最新文章

  1. C linux 宏定义的使用
  2. 为网站文字前面添加图标 在线调用 Font Awesome 字体icon小图标 美化网站
  3. 物理主机安装linux的方法
  4. 浅谈MES与SAP PP模块的集成应用
  5. python中yield函数的作用?
  6. 使用github时因fatal: remote origin already exists错误,无法提交
  7. 上传失败 已保存至草稿_特大福利 清睿口语100成都会议专家讲座视频已上传至口语100网站...
  8. 大数据面临的挑战:当大数据遭遇云计算
  9. hdu 3308 线段树
  10. 横向扩展 纵向扩展 数据库_扩展数据库–减少扩展的艺术
  11. Windows DWrite 组件 RCE 漏洞 (CVE-2021-24093) 分析
  12. solidworks工程图转PDF缺少arial字体
  13. ILSVRC2012(ImageNet2012)数据集的下载及ILSVRC2012_img_val数据集的分类
  14. 【Word】批量修改Word 图片大小
  15. 易语言游戏选服务器,网吧游戏菜单服务器含服务器端和客户端
  16. Hive 内部表和外部表
  17. 浅谈公安部声纹数据库的建设与应用
  18. 瑞萨电子RZ/G2L开发板上手评测
  19. 二手闲置物品交易获资本肯定,前景一片大好,普通人的商机在哪?
  20. vim编辑多文件,多窗口,切换窗口,切换文件命令

热门文章

  1. 浪潮服务器(NF5280M4)安装window server 2008R2系统
  2. OpenCore机型设置(三码设置)备份转移
  3. 第一章第2节-WebGIS开发
  4. 七:面向对象-->继承(extends)(继承实现电子宠物系统为例)
  5. Synology 搭建双机冗余High Availability服务
  6. 2007全球杀毒软件排名 + 2007全球防火墙排名
  7. 那些年被你亲手敲烂过的键盘
  8. 精美的android ui框架,Android酷炫实用的开源框架(UI框架)
  9. 【软件工程】UML必知必会
  10. 编程题006--判断是不是完全二叉树--niuke