使用PHP Socket开发Yar TCP服务 (www.laruence.com)

【简介】

Yar支持HTTP和TCP俩种Transporter, HTTP的是基于CURL,PHP中的Yar默认就是走的HTTP Transporter, 这个大家应该都不陌生, 但是基于TCP的, 可能大家会用的少一些。

事实上,我6年前也写过一个C的Yar server框架,叫做Yar-c, 代码地址在Yar-C at Github, 当时我们用这个框架,实现了高性能的微博白名单等服务,以供PHP端使用Yar Client来调用。

只不过,Yar C需要用C来写Handle, 可能对于不少PHPer来说,会稍微有点陌生,那今天我们尝试用PHP来写一个TCP的Server,来介绍下如何实现对Yar RPC协议的处理, 这个例子可以方便的结合Swoole等异步PHP框架,实现一个高性能的Yar TCP Server。 这个过程中, 会让大家了解Yar的RPC通信协议,以及捎带了解下Socket编程。

点击查看全文 >>

@技术头条 2022-05-06 23:37分享 / 原作者微博:@Laruence / 0个评论
赞过的人: IT技术博客大学习
要不要再学学下面的文章?
Vite开发快速入门 (mp.weixin.qq.com)
Vite (法语意为 "快速的",发音 /vit/) 是一种面向现代浏览器的一个更轻、更快的前端构建工具,能够显著提升前端的开发体验。除了Vite外,前端著名的构建工具还有Webpack和Gulp。目前,Vite已经发布了Vite2,Vite全新的插件架构、丝滑的开发体验,可以和Vue3的完美结合。
by @code小生 2022-05-15 09:50 分享 查看详情
多线程场景下使用ArrayList,这几点一定要注意! (mp.weixin.qq.com)
ArrayList 不是线程安全的,这点很多人都知道,但是线程不安全的原因及表现,怎么在多线程情况下使用ArrayList,可能不是很清楚,这里总结一下。
by @code小生 2022-05-15 09:50 分享 查看详情
IntelliJidea高效使用教程,一劳永逸! (mp.weixin.qq.com)
只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。
原因是它学习了我的项目代码,总结出了我的代码偏好。
by @code小生 2022-05-08 23:44 分享 查看详情
TCP:学得越多越不懂 (www.felix021.com)
周末小课堂又开张了,这次我们来聊一聊TCP协议。多少有点令人意外的是,大多数程序员对TCP协议的印象仅限于在创建连接时的三次握手。严格地说,“三次握手”其实是一个不太准确的翻译,英文原文是 "3-way handshake",意思是握手有三个步骤。不过既然教科书都这么翻译,我就只能先忍了。
by @技术头条 2022-05-06 23:36 分享 查看详情
使用 DeepSpeech 在你的应用中实现语音转文字 (linux.cn)
应用中的语音识别不仅仅是一个有趣的技巧,而且是一个重要的无障碍功能。

计算机的主要功能之一是解析数据。有些数据比其他数据更容易解析,而语音输入仍然是一项进展中的工作。不过,近年来该领域已经有了许多改进,其中之一就是 DeepSpeech,这是 Mozilla 的一个项目,Mozilla 是维护 Firefox 浏览器的基金会。DeepSpeech 是一个语音到文本的命令和库,使其对需要将语音输入转化为文本的用户和希望为其应用提供语音输入的开发者都很有用。
by @技术头条 2022-05-06 23:10 分享 查看详情
见多识广,介绍Web开发中current开头的一些API属性 (www.zhangxinxu.com)
主要介绍 currentTarget、currentScript、currentTime、currentNode 和 currentSrc 这5个属性 API,有些是 JS 对象属性,有些是 HTML 对象属性,都挺有用的。
by @技术头条 2022-05-04 16:40 分享 查看详情
使用jscodeshift做自动化重构 (insights.thoughtworks.cn)
在这篇文章中,我们从一个简化了的实际例子出发,描述了为何jscodeshift在某些场景下可以提供的帮助,比如降低大型修改可能带来的影响(而如果影响不可避免,那么如何使其变得不那么痛苦)。随后我们描述了jscodeshift中的一些基本概念和基本的工作方式,并结合之前讨论的例子实现了部分的自动化重构。
by @Thoughtworks 2022-04-01 17:21 分享 查看详情
什么场景(不)适合使用Lambda (insights.thoughtworks.cn)
Lambda并非万能良方,有其设计和功能上的限制,所以我根据项目的使用情况和体验,梳理了Lambda适合和不适合的场景,分享给大家,供大家在技术选型时进行参考。
by @Thoughtworks 2022-04-01 17:19 分享 查看详情
推荐一款基于SpringBoot的接口快速开发框架 (mp.weixin.qq.com)
magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发。
by @code小生 2022-03-27 23:41 分享 查看详情
推荐3个快速开发平台项目经验又有着落了 (mp.weixin.qq.com)
经常性逛github,发现了一些优秀的开源项目,其中的框架及代码非常不错,现在给大家推荐三个快速开发平台。
by @code小生 2022-02-27 20:59 分享 查看详情