宁乡电商网站建设报价山西省建设局网站

web/2025/10/9 13:31:45/文章来源:
宁乡电商网站建设报价,山西省建设局网站,如何查找昆明做网站服务的公司,汕头建站模板源码WebSocket 是 HTML5 提供的一种网络通讯协议#xff0c;用于服务端与客户端实时数据传输。广泛用于浏览器与服务器的实时通讯#xff0c;APP与服务器的实时通讯等场景。 相比传统HTTP协议请求响应式通讯#xff0c;WebSocket协议可以做到实时的双向通讯#xff0c;服务端可…WebSocket 是 HTML5 提供的一种网络通讯协议用于服务端与客户端实时数据传输。广泛用于浏览器与服务器的实时通讯APP与服务器的实时通讯等场景。 相比传统HTTP协议请求响应式通讯WebSocket协议可以做到实时的双向通讯服务端可以在任何时候向客户端推送数据(HTTP协议需要客户端发起请求后才能推送)。 PHP作为世界上最好的语言自然支持WebSocket协议。以下是PHP使用WebSocket协议教程。 教程里使用workerman作为应用容器workerman具备非常高的性能它不仅支持WebSocket协议也支持HTTP协议、Text协议、Frame协议以及其它自定义协议等。 年会PHP WebSocket实时大屏 想象一下我们年会上需要一个大屏显示每一个公司成员对公司的祝福语。接下来我们就用workermanWebSocket来实现它。 WebSocket数据流转图 首先我们需要整理下它的数据流转图。 员工(手机浏览器) -------websocket------[服务器]------websocket------大屏(电脑浏览器投屏) 原理比较简单手机浏览器和电脑浏览器分别与服务器建立一个WebSocket连接。手机浏览器通过websocket发送文字祝福给服务器服务器将文字祝福通过websocket推送给电脑浏览器并显示。 新建目录 新建目录 php-websocket然后进入到 php-websocket 目录中 安装workerman composer require workerman/workerman 新建一个start.php 文件 ?php require __DIR__ . /vendor/autoload.php; use Workerman\Worker; use Workerman\Connection\TcpConnection;// 使用websocket协议监听6161端口 $worker new Worker(websocket://0.0.0.0:6161);// 当浏览器(包括用户手机浏览器和电脑浏览器)发来消息时的处理逻辑 $worker-onMessage function(TcpConnection $connection, $data) {// 这个静态变量用来存储电脑浏览器的websocket连接方便推送使用static $daping_connection null;switch ($data) {// 发送 daping 字符串的是电脑浏览器将其连接保存到静态变量中case daping:$daping_connection $connection;break;// ping 是心跳数据用来维持连接只返回 pong 字符串无需做其它处理case ping:$connection-send(pong);break;// 用户手机浏览器发来的祝福语default:// 直接使用电脑浏览器的连接将祝福语推送给电脑if ($daping_connection) {$daping_connection-send($data);}} }; Worker::runAll(); 我们看到服务端代码很简洁电脑浏览器发起websocket连接后会发送一个字符串daping告诉服务端我是电脑浏览器服务端将这个连接保存到静态变量方便给它推送数据。手机浏览器发送的数据会直接用静态变量保存的电脑浏览器连接推送过去。 我们注意到有一个心跳数据ping pong的交互这是由于外网环境很复杂连接如果长时间不通讯(超过1分钟)连接就会被路由节点、防火墙等断开所以客户端与服务端需要在1分钟内至少通讯一次避免连接断开这个就是心跳的作用。 服务端开发完毕接下来是客户端。 电脑浏览器大屏 新建 daping.html !doctype html html langzh-cn headmeta charsetutf-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1, shrink-to-fitnoscript srcjquery.min.js/scripttitleWebSocket大屏/title /head bodyul idcontent/ul /body scriptfunction connect() {// 与服务端建立WebSocket连接//(为了方便测试这里ip使用的是127.0.0.1正式环境请使用外网ip)ws new WebSocket(ws://127.0.0.1:6161);// 连接建立后发送daping表明自己是电脑浏览器ws.onopen function() {ws.send(daping);};// 收到服务端推送的数据后将数据显示在浏览器里(心跳数据pong除外)ws.onmessage function (e) {if (e.data ! pong) {$($(#content)).append(lie.data/li);}};// 没隔50秒发送一个心跳数据 ping 给服务器保持连接ws.timer setInterval(function () {ws.send(ping);}, 50000);// 当连接关闭时清除定时器并设置1秒后重连ws.onclose function () {clearTimeout(ws.timer);setTimeout(connect, 1000);};}// 执行连接connect(); /script /html 虽然我们做了心跳保持连接但是仍然无法保证连接不被断开比如用户将浏览器切到后台、网络信号差、服务端重启等。所以断线重连是长连接应用必备的功能。所以我们需要在客户端监听连接断开事件 ws.onclose在这里执行一个定时器执行重连。 用户手机浏览器端 !doctype html html langzh-cn headmeta charsetutf-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1, shrink-to-fitnotitleWebSocket大屏/titlescript srcjquery.min.js/script /head bodyinput typetext idcontent input typebutton value发送 onclicksend() scriptfunction connect() {ws new WebSocket(ws://127.0.0.1:6161);ws.onmessage function (e) {console.log(e.data);};ws.timer setInterval(function () {ws.send(ping);}, 50000);ws.onclose function () {clearTimeout(ws.timer);setTimeout(connect, 1000);}; }// 通过WebSocket连接将数据发送给服务端 function send() {ws.send($(#content).val());$(#content).val(); }connect(); /script /body /html 用户手机浏览器端和电脑浏览器端代码类似。多个一个send函数用来将数据发送给服务端。 快速测试 html代码里使用了jquery请自行下载放置到本地。 终端运行 php start.php start -d启动workerman的websocket服务。 终端运行 php -S 0.0.0.0:7171这样利用php cli启动了一个webserver监听7171端口。 浏览器访问 http://127.0.0.1:7171/daping.html 和 http://127.0.0.1:7171/user.html 这样在user.html发送的文字会展示在 daping.html 上 如果页面访问超时请在安全组或者防火墙没有放行6161 7171端口端口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

湖北省建设招投标监督机构网站如何搭建公司内部网站

该错误提示表示您的 OpenSSL 版本过低,无法兼容 urllib3 v2.0。 解决此问题的方法是升级您的 OpenSSL 版本至 1.1.1 或以上。具体操作如下: 方法一: 检查您的 OpenSSL 版本,使用以下命令: openssl version 如果您的…

做网站在哪买域名wordpress nginx 伪静态

在新版本的macos中已经将默认的python升级成了3.x , 今天介绍一个简单的方法在新版本的macos中快速安装 python 2.7的方法, 就是使用brew安装python版本管理工具 pyenv来安装python2.7 # 安装pyenv版本管理工具 brew install pyenv # 安装python2.7 可以安装多个版本的ptyhon…

网站推广方案模板建设通网站是免费的吗

【分析】 如果行为树的节点很多,那么会存在要经过很多节点才会走到动作节点的情况。显然,性能上不如状态机。 每帧都需要重新遍历一系列节点才会走到动作节点,而实际上很多条件节点在数帧内不会有变化,这是造成性能问题的重要原…

临沂市兰山区建设局网站做的好的茶叶网站

文章目录 1.简介2.组成参考文献 1.简介 MySQL Cluster 是官方推出的基于 NDB(Network DataBase)存储引擎的高可用和可伸缩的分布式数据库系统。 以下是 MySQL NDB Cluster 的主要特点和能力: 高可用:MySQL Cluster 具有内置的高…

多语言网站系统轻创网

前言: 本人一度被Python的虚拟环境的配置所困扰,前段时间抽空学习了一下,现在总结一下方法,供大家参考。 先使用winr打开命令行窗口。 展示所有虚拟环境 conda env list 创建虚拟环境 例如我们创建一个叫做py_sk的虚拟环境 …

龙岩网站报价抖音代运营需要什么

1.Dubbo是什么? Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的是远程调用协议,也就是说两个服务器交互数据。 2.Dubbo的由来&…

led网站制作seo比较好的优化

可见性得以保障,并不意味着是的,所以可以说您正在编写一个Spring MVC应用程序,然后您决定:“我想做一些单独的封装算法,这些算法可以互换来执行特定的行为”。 对此的经典回应是“您需要一个战略模式男孩!”。 所以&a…

高端网站开发哪家专业做网站需要懂程序吗

0x00 前言 之前对于app反编译的smali汇编语言都是静态分析为主,加上一点ida6.6的动态调试,但是ida的调试smali真的像鸡肋一样,各种不爽,遇到混淆过的java代码就欲哭无泪了。后来知道IDEA用一款插件也可以实现smali的动态调试&a…

涂料网站模版网站平台推广有哪些

目录 实验内容(任务) PCB项目文件及原理图文件的创建及保存: 熟悉窗口界面、主菜单、各工具栏及图纸参数的设置: 首先先通过"纸张选择"做如下修改 修改纸张大小👇 修改标题栏的格式👇 修改…

万网做网站上海家装公司十大排名

一、修改文件/终端的属性1、修改文件创建时间如果蓝队是按照文件修改时间来判断后门的话,比如现在我们上传一个shell,可以看到shell文件与原文件的时间是不同的解决方法:touch -r teamserver shell.php现在再来看原文件与shell文件的修改时间…

科技 响应式网站模板下载一般通过男网友

在许多情况下,Excel记录的数据将按照发生的日期进行记录,但是根据日期记录的数据将非常分散,通常需要每月汇总相应的数据. 在这种情况下,您需要将日期转换为月份. 本文介绍了如何使用SUMPRODUCT函数按月汇总数据.公式提示在SUMPRO…

自己怎么做网站卖东西网络营销的未来发展趋势

win7 activemqML7上的HL7是可以说HL7协议格式的系统的一种非常常见的传输机制。 JBoss Fuse是一个非常强大的微服务样式集成平台,在为关键医疗保健提供者构建灵活,有弹性,高可用性的集成方案方面拥有良好的经验。 此外,在JCAPS上替…

开发app的网站有哪些网站开发毕业设计收获与体会

传送门 文章目录题意:思路:题意: 思路: 转换一下题意,就是求一个最小公共前后缀,显然可以暴跳nenene数组,复杂度O(n2)O(n^2)O(n2),注意到我们每次都跳的话会跳到很多重复的位置&…

如何手机做网站仿站小工具 wordpress

Sharding-JDBC是当当网开源的适用于微服务的分布式数据访问基础类库,完整的实现了分库分表,读写分离和分布式主键功能,并初步实现了柔性事务。Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。其适用于任何基于…

外综服网站开发青岛网页设计公司哪个最好

即使是对于非常简单的系统来说,也不可能在单一的模型中描述整个架构的要素和细节。如果你试图那么做,最终就会得到“弗兰克斯坦怪物”一样的模型,而且根本无法管理,也无法向任意一位利益相关者展示系统。 管理这种复杂情况的最佳方…

做电影网站视频放在那里济南做网站维护的公司

要在 CentOS 上将系统时间设置为本地时间,可以按照以下步骤进行操作: 1.首先,你需要确定你想要设置的本地时间。例如,如果你想要将系统时间设置为当前时间(假设是北京时间),则可以使用以下命令获…

网站文件怎么做下载手机app安装

阿里妹导读:如何治理测试稳定性问题?很多人会说:环境、流程管控、监控、工具化、加机器、专人负责、等等。这些都是对的。不过这些都是解决方案层面的,而不是方法论和理论体系层面的。今天,阿里研究员郑子颖来说说测试…

大型网站 建设意义山东住房和建设庭官网站官

一、名词解释 Device ID:设备ID。 IMEI:(International Mobile Equipment Identity)国际移动设备标识的缩写。是由15位数字组成的“电子串号”,它与每台手机一一对应,每个IMEI在世界上都是唯一的。 MEID…

网站建设 常见问题阿里云服务器使用教程

实验拓扑 实验要求 7,办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换) 8,分公司设备可以通过总公司的移动链路和电信链路访问到Dmz区的http服务器 9,多出口环境基于带宽比例进行选路…

扁平化设计网站建设织梦建站模板

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…