- 博客(94)
- 资源 (4)
- 收藏
- 关注
原创 websocket 内的操作码fin和opcode
在 webscoket 中,控制帧有一个限定:控制帧不允许分段(5.4. Fragmentation),意思就是,控制帧只允许作为一个完整的帧一次性发送。所以我们在处理webscoket帧的时候,如果Fin位为0,则不处理,将帧放入一个缓存,发现 Fin 位为1 的时候就可以处理帧了,根据帧的opcode来判断,如果是控制帧就直接处理,如果连续帧,就将之前缓存的帧拼接成一个完整的payload即可。其中,0,1,2是正常传输数据用的代码,8,9,A是标准的控制帧。rsv1 - 3 不用考虑,被保留的位。
2024-03-25 18:46:29 813
原创 http 协议的有效字符
qdtext:除了引号 ” 之外的TEXT (即任何 8 位字节,除开控制字符,但包括CR LF HT) quoted-pair:(反斜杠后跟 [0, 127] 范围内的任何值)。但是,实际上,几乎所有的web服务器都不会接受除了CR LF HT之外的控制字符,以及大于等于127的字符(即几乎所有不可读的字符都不在范围之内)。如果研究完协议的描述,可以看到,所有的8字节ASCII码事实上都在标准的允许之内!token:除开控制字符和分隔符的 us字符 [0, 127];
2024-03-20 16:04:43 426
原创 websocket 中 request-line 中的URI编码问题
websocket, nginx,client sent invalid request while reading client request line,
2024-03-20 11:14:09 369
原创 websocket 升级协议时的协议切换点
websocket 的 rfc6455 标准中提到了协议升级,从http协议升级到websocket协议,用的办法是在http的request header中包含Connection: upgrade 和 Upgrade: websocket 以及其他验证相关的头。但这儿有一个小问题,在rfc6455中并没有明确的提到,就是服务器在接收到http请求头之后,如何从文本格式切换到帧格式?而websocket由于是请求/响应协议升级,没有附带的payload,因此,可以确定的是,在收到。
2024-03-19 11:07:25 344
原创 Websocket 中的 sub-protocol 和 extensions 的关系
Websocket 的 Sub-protocol 和 Extensions
2024-03-15 15:13:41 590
原创 XBox One 国行解锁
④:国行Xbox开机进入主界面后插入U盘,重启主机,重启之后,打开设置 ->系统->语言和区域,如果位置改变则解锁成功。去掉文本文档的扩展名.txt,然后文本文档就变成一个空白文件,然后将该空白文件放在U盘的根目录(不要隐藏该文件)。⑤:再次重启主机,并安装字体补丁。(解锁成功后可以取下U盘)①:将主机升级到最新版的操作系统。②:将U盘格式化为NTFS格式。
2024-02-12 14:12:00 274
原创 foobar2000 突然无法正常输出DSD信号
之前一直在用foobar2000加外置dac听音乐,有一天突然发现听dsd的时候,dac面板显示输出的是PCM格式信号,而不是DSD信号,这让我觉得很奇怪,反复折腾了几次,卸载安装驱动什么的,依然如此,百思不得其解。后来无意中发现一个设置,在foobar的设置:tool -> sacd选项中,有一个output mode的选项。这一项被设置成了PCM,改成DSD之后,就解决了这个问题。
2023-11-26 10:37:21 379
原创 离散化,这个概念是谁翻译的?
离散化(discretization discipline),你可能会以为是指把一些东西分散处理,但!实际上,这个词的含义是:是把很多分散的东西,集中起来,使其变得更加容易处理。这个"集中起来,使其更加处理",可以这么理解:找出这些东西的共性,去掉这些东西的异性。或则用更哲学的语言来表示:对对象共性的抽象。离散,中文的含义就是分散,分开,模糊。
2023-04-19 18:32:41 90
原创 支付宝Alipay接入时,报错Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
用支付宝开放平台开发助手生成的私钥是PKCS8格式的,需要转换成PKCS1格式,否则调用会报这个错。把数据转成这个格式,这个错误就会消失。
2023-02-15 12:27:28 2356
原创 Unity的Socket在iOS下报10045的错。。。
这个错其实很简单,只是。。。前几天客户端的程序员告诉我,Unity在iOS机型上有个问题,Socket在息屏后,如果之前连接了服务器,再次连接就没有问题,但是如果之前没有连接服务器,尝试去连接的话,Socket就会报错10045。我仔细查了一下10045的错误信息,其实就是提示操作不支持。比如在TCP上执行UDP的操作,或则,在IPV4的协议上连接IPV6地址诸如此类的。按道理来讲,应该非常容易解决的,仔细检查一下代码应该就完事儿。我问客户端的程序,这个重新连接前,释放没有?重新初始化没有?
2022-04-28 13:07:49 309
原创 Unity IAP插件的iOS接入,服务器出现21002问题。
之前的老的框架,之前的项目一直都很正常的运行,这次接入iOS支付的时候,服务器出现了21002错误。这个问题让我头疼了1天。原因很简单,正常的iOS内购,苹果给的收据,由客户端进行base64编码之后,直接发送给服务器,然后服务器向苹果的对账服务器请求验证。只需要按苹果要求组装好json字符串即可。而网上关于设置 content_type = "application/json; charset=utf-8",或则将空格换成+号的说法,其实和这个21002半毛钱关系都没有。据我的测试可得知,co
2022-04-24 16:29:57 5304
原创 Think.js 中条件查询同字段如何用OR
在Think.js中,我们一般用_complex和_logic配合来实现一些查询的组合条件,比如 let data = await this.model('charge', 'mysql_nova').where( { _complex: { phone : [ '=', account] account : [ '=', account], _logic : "OR"
2022-04-21 13:57:09 335
原创 MYSQL Error 2013,Blob字段长度,以及max_allowed_packet
昨天服务器丢失与mysql的连接了,半夜的时候,客服给我打电话,我到服务器上看日志,看到日志中显示MySql 2013错误。2022-04-17 13:49:53 [167558.625s][ERROR] Lost connection to MySQL server during query2022-04-17 13:49:53 [167558.625s][ERROR] Failed execute SQL command: call update_ranking(?,?,?,@code), wit
2022-04-18 13:00:46 744
原创 12AU7设计中的一个小技巧
12AU7用的是12V电压,如果想用6V电压,则需要把4,5脚并联,和第9脚一同加载6v电压才能正确的点亮灯丝。事实上,第9脚是4,5脚之间的灯丝的中心抽头,其实就是接地点。如果交流点灯,这个点就非常重要,为什么?因为有些版本的12AU7的设计,就是用这个电位屏蔽两个三极管之间的干扰。因此,如果是接6V,千万别用交流点灯,会带来干扰,直接用直流电灯,而且第9脚接地。这样就可以避免上述问题。...
2022-03-30 12:18:26 1121
原创 一例 mysql error 2036
今天服务器启动的时候初始化失败,并提示mysql 的 2036错误。这个错误的具体描述是:Error: 2036 (CR_UNSUPPORTED_PARAM_TYPE)Message: Using unsupported buffer type: %d (parameter: %d)使用了不支持的缓冲区类型,这个问题来的很突然,之前的服务器一直没有报过这种错,然后我用navcat去访问数据库,执行同样的查询命令返回的是成功,这儿就可以排除数据库本身的故障了。但这个错出的也是很诡异,如果是不支持的缓
2022-02-23 14:16:12 263
原创 C++服务器调用MYSQL存储过程utf8乱码问题
1. 在C++代码创建连接时,指定UTF8的字符集。2. MYSQL数据库的属性中,必须是UTF8字符集。3. MYSQL的表的具体字段,指定UTF8字符集。4. MYSQL的存储过程,在申明字符串参数的时候,在申明后面加上CHARSET 'UTF8'比如 IN param1 varchar(128) CHARSET 'UTF8',必须做到上面的所有条件,否则必定是乱码。...
2022-02-10 18:09:22 1031
原创 路由器NAT超时设置引起的APP的TCP长连接丢失
之前碰到一个奇怪的现象,玩家在打战场的时候,由于一场打下来时间比较长,结果战斗结束之后,丢失了与Portal Server的连接,但奇怪的是没有收到任何连接丢失的事件。能成功发送消息,但服务器收不到,也无法收到从服务器来的消息。先以为是切后台之后连接被系统回收了,但反馈是根本没有任何切后台的操作。于是怀疑是不是客户端的网络的线程模型有问题,检查之后,发现线程模型没有大毛病,而且线程也是在很正常的运行。只是没有收到任何连接丢失的事件。随着收集的样本越来越多,发现一个共同点,就是这些APP都是在WIFI
2022-02-08 11:32:44 1759
原创 ios开发的p12和provision
如果是第三方的开发和发布证书,那么必须要他给你两个文件:证书的p12文件描述profile的mobileprovision文件。还有p12的密码。先安装p12,输入密码,导入证书,然后再双击mobileprovision即可。测试设备的uuid必须在生成provision文件前加入。...
2022-01-26 16:59:35 1480
原创 C/C++ 中random的精度
其实这种伪随机数的精度是很差的,如果做一个实验就可以得到结果,随机一万次,检测小于10%的概率,通常来讲,这个结果的离散性会非常的大,设定10%的触发概率通常会得到大于10%的概率,这个其实非常糟糕,特别是小精度,会让设计前功尽弃。如何解决这个问题?其实最简单的办法就是随机两次,然后相乘求余。比如,我要求10000的范围,那么用random求两次结果int random1 = random() % 10000;int random2 = random() % 10000;int resu
2022-01-17 15:48:57 282
原创 Fiio Q1的线性输入无法调节音量的问题
前几天我的Q1播放器突然无法调节线性输入的音量了,我用SMSL的Su9的输出信号通过line-in接入到Q1,然后用Q1做耳放进行功率放大。之前这个没有一点问题,能调节音量大小。而有一天我接上Q1播放音乐时,突然耳机里传来非常大的声音,而我尝试调节音量完全无效,无论怎么旋转音量旋钮,都没有任何作用。我不得不通过Su9来调节输出音量来解决问题,但这让我非常难受。当我渐渐习惯了通过Su9来调节音量时,我发现左右声道的音量有差异,导致声场定位偏向右耳。这个很奇怪,我先以为是Su9的问题,把左右声道的莲花插头互换,
2022-01-15 16:23:24 1885
原创 6N6+6N1的反馈式并联稳压电路
电子管的反馈式稳压电路资料很少这儿是一个计算设计过程:图如下:这个电路大概能实现1mV以下的稳压效果,但是这个线路对输入的波纹很敏感,必须是有规律的类似于正弦波的波纹才能得到最佳的效果。如果输入的波纹不稳定,那么会导致输出的波形瞬时的极化。这个电路的计算方式如下:选用6N6作为稳压管,6N1作为电压放大管。两级放大后的跨导放大为:gmT= gm * A而输出阻抗近似为Ro = 1/gmT6N6的一些标准参数:μ:20Ia:30mARa:1.8KΩPd
2021-11-14 17:20:11 3415
Compositor.rar
2020-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人