EventEmitter练习之--匿名聊天室
文章目录
- 自定义事件发射器channel
- 定义服务器server并实现发射自定义事件逻辑。
- 代码:
- 启动服务
- 模拟客户连接服务
自定义事件发射器channel
- 类型:join
client通过telnet加入后,聊天室后,记录client信息并注册broadcast和leave事件。 - 监听类型:broadcast
接受到内容后,输出内容到已注册客户端。 - 监听类型:leave
当客户端退出后,移除自定义监听事件。
定义服务器server并实现发射自定义事件逻辑。
备注:不支持中文。
代码:
创建文件test.js
var events = require('events')
var net = require('net')
var channel = new events.EventEmitter()
channel.clients = {}
channel.subscriptions = {}channel.on('join', (id, client) => {channel.clients[id] = client;channel.subscriptions[id] = function(senderId, message){if(id != senderId){channel.clients[id].write(message)}}channel.on('broadcast', channel.subscriptions[id])channel.on('leave', ()=>{channel.removeListener('broadcast', channel.subscriptions[id])})
})var server = net.createServer(client=>{var id = client.remoteAddress+':'+client.remotePort;console.log('createServer',id);//发射join事件channel.emit('join', id, client)client.on('data', data => {//发射broadcast事件channel.emit('broadcast', id, data.toString('utf-8'))})client.on('close', ()=>{//发射leave事件channel.emit('leave', id)})
})server.listen(8888)
启动服务
node test.js
模拟客户连接服务
打开两个客户端,输入如下命令
telnet 127.0.0.1 8888
EventEmitter练习之--匿名聊天室相关推荐
- 将“闲聊么”改造成匿名聊天室
关于闲聊么 之前的文章早已有介绍,详见"闲聊么"给你的网站加上一个聊天框. 不过啊,它有一个致命的弱点,必须注册登录才能参与聊天.对于小网站来说,很是鸡肋.一般人看到这么麻烦就放弃 ...
- flask android app socketio加解密 匿名加密聊天室 不被任何官方非官方机构个人监视的匿名聊天室!!! 想聊什么就聊什么!
www.miracleseller.xyz:860/ http://www.miracleseller.xyz:860/ app聊天室(匿名加密 不被任何人任何机构监视的app): http://ww ...
- TCP 聊天室v2 实现多人匿名聊天 C++,linux系统下
使用select IO复用实现多人匿名聊天室(linux系统下) 功能:用户可发送消息,并同时能看到其他用户发的消息,用户输入over退出 实现思路: 服务端仅作为消息的中转方,使用select管理所 ...
- 基于python实现的聊天室(客户端:一)窗口设置
前言 就是自己想用python做一个聊天室,然后看看socket库,websocket库,有点底层,然后也会用到协程的东西,不是很明白,一时间也不知道怎么写,因为前面使用过了flask-socketi ...
- 基于python实现的聊天室(服务端)
前言 就是自己想用python做一个聊天室,然后看看socket库,websocket库,有点底层,然后也会用到协程的东西,不是很明白,一时间也不知道怎么写,然后就用了封装好的python-socke ...
- 一款开源的匿名聊天工具,太牛了
今天推荐的这个项目是「anonymous-chat-room」,一个基于 livekit 和 Next.js 的匿名聊天室,可以进行文字.语音聊天,并支持语音录屏. 特点 部署简单:前端支持直接部署到 ...
- PHP匿名在线聊天室系统源码 自适应PC+WAP端
介绍: PHP匿名在线聊天室系统源码 自适应PC+WAP端 可发语音.图片 修改数据库config\settings.php可拿去搭建专门跟客户聊天的网站 网盘下载地址: http://kekewl. ...
- PHP匿名在线聊天室系统源码
PHP匿名在线聊天室系统源码,自适应PC+WAP端,可发 语音.图片.带有三套主题模板,完美可用. [完整源码链接] PHP匿名在线聊天室系统源码.zip-PHP文档类资源-CSDN文库
- 【聊天室系统源码】多语言海外版匿名中英文聊天室开发
随着国际化发展的潮流和趋势,越来越多的各国友人通过社交软件在一起聊天,交流和学习,但是各国的专用社交软件都有一定的地域保护,不会让其他地区的网友随意注册和使用,当然我们国家也不让随意使用海外的社交软件 ...
- 从0搭建在线聊天室,只需4步!
Vol. 5 聊天室不同于单聊和群聊,是一类集成了多种 IM 功能一体的大规模实时消息分发系统.在跨入新世纪的2000年,聊天室作为新型的即时通讯场景迅速在年轻人群体中火热起来,"网易聊天室 ...
最新文章
- [新手学Go]GO语言闭包的使用
- 汉语转拼音pinyin4j
- 【APICloud系列|35】APICLloud开源官方模块
- 笔记本AutoCAD启动时闪退怎么办_戴尔笔记本电脑开不了机如何解决【解决方法】...
- 在CSDN写文章头部生成标题目录
- 并且确定已经识别出了主要的HTML5技术风险
- CV Code | 本周计算机视觉新出开源代码汇总(含目标检测、深度估计、视频识别、网络加速算法等)...
- k8s极简史:K8s多集群技术发展的历史、现状与未来
- Javascript 监控键盘输入事件
- 原生ES-Module在浏览器中的尝试
- 搭建hadoop集群,从安装虚拟机开始直到hadoop成功搭建
- c语言中各种符号的意思。
- 解决mysql插入中文出现错误ERROR 1366 (HY000): Incorrect string value: ‘\x80\x85\xEF\xBC\x8C\xE6...‘ for column
- grafana绘图配置查询变量+多级变量联动
- autojs 开发文档集合
- 双屏显示html vga,官方数据:一台计算机连接到两台显示器,双屏显示(VGA,HDMI)指南...
- 建议收藏 | 数据化、信息化、数字化、智能化到底都是指什么?彼此有什么联系?
- 有感“IBM将大规模裁员11万人左右,幅度高达26%”
- JavaWeb EMS员工信息管理系统(servlet+jsp版本)
- (深度学习论文精读总结)You Only Look Once: Unified, Real-Time Object Detection
热门文章
- 《零基础入门学习Python》第019讲:函数:我的地盘听我的
- manjaro kde 20.2安装
- 完美解决No files matched pattern
- 从零开始之uboot、移植uboot2017.01(三、lowlevel_init)
- MySQL单表数据查询之分组数据查询之旅
- 游戏中学会写代码:这些编程学习网站不容错过
- 版权微talk | 两部门发文,拟出台相关方案,全面加强知识产权保护
- 瑞士央行2022年巨亏1320亿瑞士法郎
- php中strpos什么意思,PHP使用strpos()和strrpos()定位文本
- 移动应用跨平台框架江湖将现终结者?速来参拜来自Facebook的React Native