当前位置: 首页 > wzjs >正文

偃师网站建设百度搜索资源管理平台

偃师网站建设,百度搜索资源管理平台,深圳学校网站建设哪家好,wordpress默认主体设置通讯双方怎么知道对方什么时候会发消息过来并接收的,是通过轮询吗? 轮询是指客户端定期向服务器发送请求,检查是否有新的数据(即客户端不断发起请求)。 就是你的舔狗,每天定时定点发消息问你,在…

通讯双方怎么知道对方什么时候会发消息过来并接收的,是通过轮询吗?

轮询是指客户端定期向服务器发送请求,检查是否有新的数据(即客户端不断发起请求)。

就是你的舔狗,每天定时定点发消息问你,在吗?睡了吗?看电影吗?检查你是否有想和ta说话的意愿。你说话了,就是有新的数据,ta就get到了。

WebSocket不使用传统的轮询机制,它通过事件驱动的方式处理消息的接收和发送。而WebSocket连接在建立后是持久的,并且是双向的,意味着服务器可以主动向客户端发送数据,客户端也可以主动发送数据,两者之间的通信是即时的。

与轮询相比,WebSocket的优势在于:

低延迟: 消息在需要时即时发送,而不需要等待周期性的请求。

我想和你看电影,不等你周期性地来问,直接马上打电话和你说。

减少带宽消耗: 不需要不断发送请求来检查新数据。
双向通信: 双方都可以主动发送数据,而不只是客户端向服务器请求。

我们两个的交流有来有往,不是一方在主导。你想和我看电影,也可以直接马上打电话说。

什么是事件机制?

事件机制是一种编程模型,通常用于处理异步事件。在这种模型中,程序不会一直轮询或等待某个任务的完成,而是当某个事件发生时,系统会自动触发特定的处理函数(通常被称为回调函数)来响应这个事件。

WebSocket如何实现事件机制?

WebSocket实现事件机制的核心就是基于回调函数事件监听器。在JavaScript等语言中,WebSocket对象通过定义一些内置的事件和回调函数来处理这些事件。

WebSocket的事件机制包括以下常见事件:

onopen(连接打开事件): 这个事件在WebSocket连接成功建立时触发。通常你会在这个事件里写一些初始化代码。

onmessage(消息接收事件): 这个事件在从服务器接收到数据时触发。它的回调函数会收到一个包含服务器发送消息的事件对象。

onclose(连接关闭事件): 当WebSocket连接关闭时,onclose事件被触发。这个事件常用于处理连接断开后的逻辑,比如重新连接或者清理资源。

onerror(错误事件): 如果WebSocket连接发生错误,这个事件会被触发。它通常用于处理错误恢复或记录日志等操作。

// 创建WebSocket对象
const socket = new WebSocket('ws://example.com/socket');// 监听连接打开事件
socket.onopen = function(event) {console.log("WebSocket连接已建立");// 连接成功后可以开始发送消息socket.send("Hello Server!");
};// 监听消息接收事件
socket.onmessage = function(event) {console.log("收到来自服务器的消息: " + event.data);
};// 监听连接关闭事件
socket.onclose = function(event) {console.log("WebSocket连接已关闭");
};// 监听错误事件
socket.onerror = function(event) {console.log("WebSocket发生错误");
};

socket.onopen、socket.onmessage、socket.onclose 和 socket.onerror 都是事件处理函数(也叫回调函数)。这些函数会在对应事件发生时自动被调用。

回调函数的参数:事件回调函数通常会接收一个事件对象作为参数,例如onmessage事件接收到的event对象包含了消息内容(如event.data)。

例子:

WebSocket 服务器代码

// 引入ws库
const WebSocket = require('ws');// 创建一个WebSocket服务器,监听在8080端口
const wss = new WebSocket.Server({ port: 8080 });// 当有客户端连接时,触发 'connection' 事件
wss.on('connection', (ws) => {console.log('一个客户端已连接');// 监听客户端发送过来的消息ws.on('message', (message) => {console.log('收到客户端消息: %s', message);// 发送响应给客户端ws.send('服务器收到消息: ' + message);});// 监听客户端断开连接的事件ws.on('close', () => {console.log('客户端已断开连接');});// 监听发生错误的事件ws.on('error', (err) => {console.log('发生错误: ', err);});// 向客户端发送欢迎消息ws.send('欢迎连接到WebSocket服务器!');
});console.log('WebSocket服务器已经启动,监听端口 8080');

连接到 WebSocket 服务器(客户端代码)

// 创建 WebSocket 连接
const socket = new WebSocket('ws://localhost:8080');// 监听连接成功事件
socket.onopen = function() {console.log('成功连接到服务器');// 向服务器发送消息socket.send('Hello, server!');
};// 监听接收到的消息
socket.onmessage = function(event) {console.log('收到来自服务器的消息:', event.data);
};// 监听连接关闭事件
socket.onclose = function() {console.log('连接已关闭');
};// 监听错误事件
socket.onerror = function(error) {console.error('WebSocket 发生错误:', error);
};

客户端得到的结果应该是:

客户端连接到 WebSocket 服务器。
客户端向服务器发送消息 “Hello, server!”。
服务器接收到消息并响应 “服务器收到消息: Hello, server!”。

http://www.dtcms.com/wzjs/74716.html

相关文章:

  • 长春网站制作顾问免费建立网站
  • wordpress 后门检测网站seo啥意思
  • 狗爹域名网站快速网络推广
  • 做网站用别人图片文章会侵权吗搜索app下载
  • 电脑如何做网站关键词诊断优化全部关键词
  • 视觉设计师面试问题开鲁网站seo不用下载
  • 有没有做淘宝客网站的做网页
  • 中山市智能h5网站建设公司百度竞价推广账户
  • 产品网络推广方案范文关键词优化简易
  • 政府采购电子商城网站做seo排名
  • wordpress全屏滚轴seo免费资源大全
  • 手机建网站怎么弄舆情分析报告模板
  • 博彩网站如何做的充值优化绿松石什么意思
  • 工商注册网站品牌seo是什么意思
  • 保定网站建设价格网站竞价推广都有哪些
  • 番禺人才网站谷歌chrome
  • 网站三级栏目什么平台免费推广效果最好
  • 做独立网站需要什么seo工资水平
  • 个门户网站合肥最新消息今天
  • 邢台网站改版制作公司排名优化公司哪家好
  • 怎样做旅游公司的网站汕头seo快速排名
  • 贵州网站推广公司石家庄百度推广优化排名
  • 网站维护服务器教育培训机构十大排名
  • 企业网站备案还是不用备案东莞网络推广托管
  • 哪个网站可以接任务做兼职优化关键词排名提升
  • 怎么查看网站外链效果品牌宣传策略有哪些
  • 网站建设与推广的实训报告友情链接交换平台源码
  • 做商城网站如何寻找货源高端营销型网站
  • 知名网站建设公司 北京宁波网站优化公司电话
  • 网站备份线上推广方案怎么写