博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过WebSocket实现一个简单的聊天室功能
阅读量:5292 次
发布时间:2019-06-14

本文共 1466 字,大约阅读时间需要 4 分钟。

WebSocket

WebSocket是一个协议,它是是基于TCP的一种新的网络协议,TCP协议是一种持续性的协议,和HTTP不同的是,它可以在服务器端主动向客户端推送消息。通过这个协议,可以在建立一个nodejs的服务器,然后所有的客户端都可以向服务器端发送消息,然后服务器端把这个消息广播出去,形成了一个类似于聊天室的东西。

客户端:

1  2  3  4     
5 websoket 6 7 8

chat room

9 10 11 37 38

从我的服务器localhost:6666实例化一个新的websocket,然后打开他监听发送按钮,点击发送就把txt发送到服务器端,然后监听得到的消息,通过showMsg渲染到界面上去

服务器端(node.js):

1 var ws = require("nodejs-websocket") 2  3 var port = 6666; 4  5 var clientCount = 0; 6  7 var server = ws.createServer(function (conn) { 8     console.log("New connection") 9     clientCount++10     conn.nickname = "user" + clientCount11     broadcast("******* "+conn.nickname + " comes in *******");12 13 14     conn.on("text", function (str) {15         console.log("Received "+str)16         broadcast(conn.nickname + " say: " + str)17     })18 19 20     conn.on("close", function (code, reason) {21         broadcast("******* " + conn.nickname + " left *******");22     })23     conn.on("error", function(err) {24         console.log("error: "+err);25     })26 }).listen(port)27 28 console.log("websocket server listening on " + port);29 30 function broadcast (str) {31     server.connections.forEach(function (connection) {32         connection.sendText(str)33     })34 }

 之前要加载一下nodejs-websocket模块,来一个人就把计数器加1,然后给他设置名字,监听收到的消息text,有消息就执行broadcast,broadcast就是向所有的客户端广播新的消息

举个例子

这里是我服务器上的栗子,大家可以看看

http://www.xiedashuaige.cn/websocket.html

转载于:https://www.cnblogs.com/xiedashuaige/p/7684213.html

你可能感兴趣的文章
狄利克雷过程(Dirichlet Process)
查看>>
五子棋项目的实现(二)博弈树算法的描述
查看>>
Hibernate : Disabling contextual LOB creation as createClob() method threw error
查看>>
【bzoj4872】[Shoi2017]分手是祝愿 期望dp
查看>>
字符串元转分
查看>>
thinkphp 防sql注入
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
bzoj3110: [Zjoi2013]K大数查询 【树套树,标记永久化】
查看>>
[原创]Java 的传值小例子
查看>>
【MySQL学习】安装和配置 服务无法启动 没有报告任何错误
查看>>
C# 修饰符
查看>>
JavaScript启示录
查看>>
我需要什么样的浏览器?
查看>>