博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
websocket(一)
阅读量:3926 次
发布时间:2019-05-23

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

websocket(一)

WebSocket (即时通讯)是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据

1.基本方法使用(H5)
            
// 1:创建socket服务 ws://localhost:3000本地自建的socket服务员    var socket = new WebSocket("ws://localhost:3000")
//2:open连接到websocket服务时触发    socket.addEventListener("open",()=>{
div.innerHTML="websocket已连接!!!" }) btn.onclick=function(){
var value= ipt.value //3: send 主动向websocket发送信息 socket.send(value) ipt.value="" }
//4:接收websocket返回的消息    socket.addEventListener("message",function(e){
var p=document.createElement("p") p.innerHTML= e.data div.appendChild(p))
2.websocket服务端(node)

在node中安装依赖包nodejs-websocket

//1:加载依赖包const ws =require("nodejs-websocket")const PORT=3000;let count = 0;
//2.0:创建一个server服务//2.1:如何处理请求用户连接//每次只要有用户连接 函数就会被执行,会给当前连接的用户创建一个connect对象const server = ws.createServer(connect=>{
count++ var userName = `用户${
count}` broadcast(`${
userName}进入了聊天室`) console.log(userName+"进入聊天室") //注册一个text方法 用来接收用户发来的消息数据 connect.on("text",data=>{
console.log(data) // send websocket向用户返回一个信息 // connect.send(data) // 向每个用户发送发送消息 broadcast(userName+":"+data) }) // 只要websocket断开连接 close事件就会触发 connect.on("close",data=>{
count-- broadcast(`${
userName}离开聊天室`) console.log(userName+"离开聊天室") }) // 注册一个error 处理用户的错误信息 connect.on("error",()=>{
console.log("用户连接异常") })})server.listen(PORT,()=>{
console.log("websocket服务启动成功,监听端口号为"+PORT)})
// node里面的一个广播方法//server.connections 表示所有的用户function broadcast(message){
server.connections.forEach(function(conn){
conn.send(message) })}

转载地址:http://ngkgn.baihongyu.com/

你可能感兴趣的文章
为WPF播放GIF伤神不?
查看>>
.NET Core with 微服务 - Elastic APM
查看>>
生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包...
查看>>
考虑用Task.WhenAll
查看>>
关于面试,避开这几点,成功几率更大~~~
查看>>
堵俊平:开放治理是开源社区的终极之路 | DEV. Together 2021 中国开发者生态峰会...
查看>>
Linux实操--实用指令Day3
查看>>
Linux实操--实用指令Day4
查看>>
Linux实操--实用指令Day3
查看>>
spring+springboot认识
查看>>
Leetcode 136. 只出现一次的数字
查看>>
Leetcode 11. 盛最多水的容器
查看>>
Leetcode 121. 买卖股票的最佳时机
查看>>
Leetcode 123. 买卖股票的最佳时机 III
查看>>
Leetcode 24. 两两交换链表中的节点
查看>>
Leetcode 100. 相同的树
查看>>
Leetcode 101. 对称二叉树
查看>>
Leetcode 108. 将有序数组转换为二叉搜索树
查看>>
Leetcode 303. 区域和检索 - 数组不可变
查看>>
Leetcode 110. 平衡二叉树
查看>>