【备忘】websocket学习之挖坑埋自己

背景故事

以前没有好好学习过websocket,只知道它有什么用途,也知道是个好东西,平时在工作中没用过,所以对它并不知所以然。如今要做个自己的项目,要在付款的时候实时播报声音。自己是个开发者,也不想用别人的软件,当然我的功能也不是很多。

挖坑之路

因为之前有web开发经验,看了gateway-worker文档,感觉也不难(大意失荆州的伏笔),

然后就下载了官方案例,改了代码,上传服务器,开始调试,一通操作下来,很快就搞定了。

苦不堪言的调试之路

当我开始调试时不出意外的是出现不响应数据,以及后来怎么测试怎么不行,搜了文章,看了文档,甚至花了2天学习workerman的入门视频,都没能解决我的问题。(只要用websocket,搜workerman资料来学习就可以了)

环境介绍

  •         前端用户uniapp开发的小程序(用什么不重要,只要用websocket就行)
  •         后端用的php
  •         服务器是nginx
调试感受

经过漫长的调试,把代码写了又写,框架换了又换,用了workerman,换了gateway-worker,来回折腾始终还是连接不上服务器,最开始的把websocket代码跟thinkphp项目放在一起的,测来测去,改来改去,删了又删,最后把websocket代码与原有项目独立开来(事实上是可以融合在一起的)。最终把问题排除完之后定位到服务器无法响应socket请求,但是可以连接,就是无法open通道,实在不知道怎么办了,要是换以前,我就放弃了。但是今天,我没有,因为我要做自己的项目,我知道它是难点,因为没做过,肯定要从0开始摸索。

问题定位了,但是无法解决,最后到处加群,到处找大佬咨询,最后还是有三两个人回答并帮助排查问题,虽然最后还是没解决,但是也在过程中找到一些思路,感谢网友!

最后,在半夜,咨询一个好心网友,他给了思路并发了官方文档的具体文章链接,我按照这个文章一 一排查,虽然还是没解决问题(又一次感受到难,也可能是我太急切想解决问题了,难以沉下心来仔细检查和思考)。

关键问题

最终定位到致命问题,那就是我在下载框架的时候,随意的修改了框架案例中的应用目录,按照以前的开发经验,只要不修改核心文件,修改其它目录基本是不会出问题的,况且一般应用目录都会使用小写字母,但是这里它用的大写字母开头,很不习惯,然后我改成了小写(埋下地雷)。

我的随意让我知道了随意的巨大代价!因为框架加载了案例中的文件,所以只要目录改变也就无法加载了,自然也就无法响应数据了。

截图参考案例项目结构,这是官方案例:

所以我不管怎么测试都不会成功,真的是大意失荆州啊,可能自以为有经验,自我感觉改个应用目录不会有问题吧,事实给了我一个响亮的耳光。

挖坑事件总结

虽然这个问题让我花了3天来寻找问题所在,但是也在过程中学习了掌握了很多知识点,毕竟是从0开始学websocket,也是实战项目,想来这样也好,遇到的问题越多,经验涨得也越快!也感谢自己的坚持吧。

功夫不负有心人。有心,大概说的就是坚持吧,不负,大概就是说的结果吧。

学习路径总结:

看文档,照着文档写,照着文档步骤调试,看视频学习。

切记心浮气躁啊!

实在不会,再把遇到的问题详细列出来,向群里网友求助,只要态度好,一定会有人帮助你的。

感谢网友!

END

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

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

相关文章

解决升级docker导致的k8s崩溃问题

最近由于安装harbor升级了docker,然后发现k8s集群就启动不了。 查看kubelet日志发现:直接连不上apiserver了,直接connection refused 然后尝试启动apiserver容器直接报错:Error response from daemon: unknown or invalid runtim…

【原创】java+swing+mysql校园活动管理系统设计与实现

前言: 本文介绍了一个校园活动管理系统的设计与实现。该系统基于JavaSwing技术,采用C/S架构,使用Java语言开发,以MySQL作为数据库。系统实现了活动发布、活动报名、活动列表查看等功能,方便了校园活动的发布和管理&am…

list.toArray

直接去看原文 原文链接:List的toArray()方法_list.toarray-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- toArray()介绍 toArray()方法是List接口中提供的方法&#xff…

线性表的概念

目录 1.什么叫线性表2.区分线性表的题 1.什么叫线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是…

餐厅订座预约小程序的效果如何

市场中无论哪种城市,餐厅非常多,一条不长的商业街,汇聚着数家餐饮品牌,且相互间竞争激烈,并且各个商家都希望用成本低高效率的方法引流及转化。 随着互联网深入各个行业,传统餐饮行业经营痛点不少。 传统餐…

前端---CSS的样式汇总

文章目录 CSS的样式元素的属性设置字体设置文字的粗细设置文字的颜色文本对齐文本修饰文本缩进行高设置背景背景的颜色背景的图片图片的属性平铺位置大小 圆角矩形 元素的显示模式行内元素和块级元素的转化弹性布局水平方向排列方式:justify-content垂直方向排序方式…

Abp6.0 使用 appsettings.json配置Serilog.Sinks.MariaDB

Abp6.0中已经启用Serilog,使用Serilog.Sinks.MariaDB包可以保存到MariaDB,mysql中 一种做法是在var loggerConfiguration new LoggerConfiguration( )后使用WriteTo.MariaDB扩展方法来配置,这样在代码中配置不够灵活,修改起来也不方便 其实…

mysql查看回滚记录

1、查看MySQL的回滚记录,先确认MySQL数据库的版本。MySQL的回滚记录功能从版本5.6.5开始引入,如果数据库版本较低,则无法使用该功能。 2、找到mysql:where mysql 开启回滚日志功能,在MySQL的配置文件(my.…

基于深度学习的活体人脸识别检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1. 活体人脸识别检测算法概述 4.2. 深度学习在活体人脸识别检测中的应用 4.3. 算法流程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 …

好用的开源项目地址

Sword: SpringBlade前端UI项目,基于react 、ant design、dva、umi,用于快速构建系统中后台业务。 官网:https://bladex.cn Saber: SpringBlade前端UI项目,对现有的avue2.0、element-ui库进行二次封装。基于json驱动的模块配置&am…

分形图案是什么?fpmarkets这样进入市场

分形图案的构造相对简单。市场在某个时间段内,会呈现单向的变动,要么持续上涨,要么持续下跌。观察这种趋势,并预测市场将呈现上涨态势后,过了一段时间,当所有有意向的买家都已经完成购买行为(即在价格上涨过…

EasyPOI实现excel文件导出

EasyPOI真的是一款非常好用的文件导出工具&#xff0c;相较于传统的一行一列的数据导出&#xff0c;这种以实体类绑定生成的方式真的非常方便&#xff0c;也希望大家能够了解、掌握其使用方法&#xff0c;下面就用一个实例来简单介绍一下EasyPOI的使用。 1.导入依赖 <!-- e…

C语言每日一题(31)相交链表

力扣160.相交链表 题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意…

新手老师怎么发布班级查询?

现在科技发展飞快&#xff0c;班级查询系统已经成为了许多学校必备的教务工具。可以让学生们快速查找到班级的各项信息&#xff0c;包括但不限于课程安排、考试成绩、分班等。对老师来说&#xff0c;班级查询系统可以提高工作效率&#xff0c;减少重复劳动&#xff0c;学生或者…

SQL ALTER TABLE 语句||SQL AUTO INCREMENT 字段

SQL ALTER TABLE 语句 ALTER TABLE 语句 ALTER TABLE 语句用于在现有表中添加、删除或修改列。 SQL ALTER TABLE 语法 若要向表中添加列&#xff0c;请使用以下语法&#xff1a; ALTER TABLE table_name ADD column_name datatype 若要删除表中的列&am…

基于蝠鲼觅食算法优化概率神经网络PNN的分类预测 - 附代码

基于蝠鲼觅食算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于蝠鲼觅食算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于蝠鲼觅食优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

ubuntu中cuda12.1配置(之前存在11.1版本的cuda)(同时配置两个版本)

ubuntu中cuda12.1配置 由于YOLOv8项目中Pytorch版本需要cuda12.1版本 在官网下载12.1版本的deb包 官网地址 sudo dpkg -i cuda-keyring_1.0-1_all.deb sudo apt-get update sudo apt-get -y install cuda然后需要修改bashrc文件&#xff08;隐藏文件&#xff09; 添加 exp…

格力报案称“高管遭自媒体侮辱诽谤”

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 王自如的一番话引来了众多围攻&#xff0c;格力已报警&#xff0c;高管遭到侮辱诽谤。这应该是近年来少见的大企业和网络大v之间公开翻脸互撕的场景了! 就在今天格力就高管遭自媒体侮辱诽谤报案。…

云计算发展

云计算&#xff0c;作为当今信息技术领域的核心力量&#xff0c;正在快速推动着我们社会的数字化转型。从智能家居到无人驾驶&#xff0c;从虚拟现实到人工智能&#xff0c;云计算的应用无处不在&#xff0c;它不仅仅是一个技术概念&#xff0c;更是一种全新的生活方式。在这个…

关系代数、SQL语句和Go语言示例

近些年&#xff0c;数据库领域发展日新月异&#xff0c;除传统的关系型数据库外&#xff0c;还出现了许多新型的数据库&#xff0c;比如&#xff1a;以HBase、Cassandra、MongoDB为代表的NoSQL数据库&#xff0c;以InfluxDB、TDEngine为代表的时序数据[1]库&#xff0c;以Neo4J…