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

news2024/11/27 6:14:59

背景故事

以前没有好好学习过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.coloradmin.cn/o/1216701.html

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

相关文章

类加载中的执行顺序

结论: 先静态再实例 实例化一个子类(这个颜色主要是实例化会执行的部分): 父类静态属性->父类静态代码块->子类静态属性->子类静态代码块->父类代码块&…

jQuery【jQuery树遍历、jQuery动画(一)、jQuery动画(二)】(四)-全面详解(学习总结---从入门到深化)

目录 jQuery树遍历 jQuery动画(一) jQuery动画(二) jQuery树遍历 1、 .children() 获得子元素&#xff0c;可以传递一个选择器参数 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-…

【Effective C++ 笔记】(四)设计与声明

【四】设计与声明 条款18 &#xff1a; 让接口容易被正确使用&#xff0c;不易被误用 Item 18: 让接口容易被正确使用&#xff0c;不易被误用 Make interfaces easy to use correctly and hard to use incorrectly. “让接口容易被正确使用&#xff0c;不易被误用”&#xff0…

OpenCV基础应用(3)— 把.png图像保存为.jpg图像

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。本节课就手把手教你如何把.png图像保存为.jpg图像&#xff0c;希望大家学习之后能够有所收获~&#xff01;&#x1f308; 目录 &#x1f680;1.技术介绍 &#x1f680;2.实现代码 &#x1f680;1.技术介绍 如果在电脑某…

web缓存-----squid代理服务

squid相关知识 1 squid的概念 Squid服务器缓存频繁要求网页、媒体文件和其它加速回答时间并减少带宽堵塞的内容。 Squid代理服务器&#xff08;Squid proxy server&#xff09;一般和原始文件一起安装在单独服务器而不是网络服务器上。Squid通过追踪网络中的对象运用起作用。…

渗透测试--实战若依ruoyi框架

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

YOLOv3 学习记录

文章目录 简介整体介绍整体架构图 网络架构的改进Backbone 的改进FPNAnchor 机制 坐标表示与样本匹配目标边界框的预测正负样本匹配 损失函数 简介 关注目标在哪里 目标是什么 目标检测的发展路径&#xff1a; proposal 两阶段 --> anchor-base/ anchor-free --> nms f…

SpringCloud微服务:Nacos的集群、负载均衡、环境隔离

目录 集群 在user-service的yml文件配置集群 启动服务 负载均衡 order-service配置集群 设置负载均衡 当本地集群的服务挂掉时 访问权重 环境隔离 1、Nacos服务分级存储模型 一级是服务&#xff0c;例如userservice 二级是集群&#xff0c;例如杭州或上海 …

计算机网络的发展

目录 一、计算机网络发展的四个阶段 1、第一阶段&#xff1a;面向终端的计算机网络&#xff08;20世纪50年代&#xff09; 2、第二阶段&#xff1a;计算机—计算机网络&#xff08;20世纪60年代&#xff09; 3、第三阶段&#xff1a;开放式标准化网络&#xff08;20世纪70年…

【2023最全教程】python+appium自动化测试元素定位(建议收藏)

关于app自动化测试&#xff0c;元素定位工具有三个&#xff1a; appium自带的Appium Inspector工具 Android ADT原生的工具 python版uiautomator2中的weditor 由于我常用的是前两个&#xff0c;所以下面只介绍前面两种元素定位工具&#xff08;以下内容中均以微博为例子&am…

idea中把spring boot项目打成jar包

打jar包 打开项目&#xff0c;右击项目选中Open Module Settings进入project Structure 选中Artifacts&#xff0c;点击中间的加号&#xff08;Project Settings->Artifacts->JAR->From modules with dependencies &#xff09; 弹出Create JAR from Modules&#…

OpenCV基础应用(4)— 如何改变图像的透明度

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。本节课就手把手教你如何改变图像的透明度&#xff0c;希望大家学习之后能够有所收获~&#xff01;&#x1f308; 目录 &#x1f680;1.技术介绍 &#x1f680;2.实现代码 &#x1f680;1.技术介绍 改变图像透明度的实…

从内网到公网:使用Axure RP和内网穿透技术发布静态web页面的完整指南

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

振南技术干货集:比萨斜塔要倒了,倾斜传感器快来!(1)

注解目录 1、倾斜传感器的那些基础干货 1.1 典型应用场景 &#xff08;危楼、边坡、古建筑都是对倾斜敏感的。&#xff09; 1.2 倾斜传感器的原理 1.2.1 滚珠式倾斜开关 1.2.2 加速度式倾斜传感器 1)直接输出倾角 2)加速度计算倾角 3)倾角精度的提高 &#xff08;如果…

JS-项目实战-新增水果库存功能实现

1、fruit.js function $(name) {if (name) {//假设name是 #fruit_tblif (name.startsWith("#")) {name name.substring(1); //fruit_tblreturn document.getElementById(name);} else {return document.getElementsByName(name); //返回的是NodeList类型}} }//当…

一言成文大模型:大模型实践落地之路

百度CEO&#xff0c;李彦宏指出、深度学习技术&#xff0c;大语言模型具备了理解、生成、逻辑、记忆等人工智能的核心基础能力&#xff0c;为通用人工智能带来曙光。 元宇宙_一言成文大模型 一言成文大模型&#xff1a;大模型实践落地之路

光伏含氟废水吸附处理

#光伏含氟废水吸附处理 氟的来源是冰晶石、萤石、氟磷灰等矿物&#xff0c;在钢铁、有色金属冶炼、铝、玻璃、化肥等工业领域得到广泛应用。 目前&#xff0c;在太阳能板生产中&#xff0c;一项关键工艺就是将氟化氢溶液浸泡在硅片上&#xff0c;以除去表面的磷硅玻璃&#xf…

小程序action-sheet结合自定义tabbar显示

要实现此效果&#xff0c;遇到的问题&#xff1a;背景在电脑端调试的情况正常的情况下&#xff0c;手机端点击事件工单&#xff0c;返回回来的时候action-sheet卡住在屏幕上&#xff0c;点击遮罩层都不消失。更奇怪的是 这种情况并不是每次发生&#xff0c;而是有时候发生&…

LeetCode34-34. 在排序数组中查找元素的第一个和最后一个位置

&#x1f517;:代码随想录:二分查找的算法讲解:有关left<right和left<right的区别 class Solution {public int[] searchRange(int[] nums, int target) {int nnums.length;int l0,hn-1;if(numsnull){return null; }if(n0){return new int[]{-1,-1}; }if(target&l…

ROS 学习应用篇(七)ROS中的坐标变换管理之tf初探

坐标变化是机器人中很重要的内容&#xff0c;但是要是概括下来无非就是旋转和平移矩阵。 小海龟跟随实验 做的是两个小海龟之间的跟随&#xff0c;其实就相当于视觉设备和本体设备见有一定的位置差在ros平台下tf坐标变化的实验 首先安装海龟tf变换包 新开终端输入 sudo apt…