一切福田,不離方寸,從心而覓,感無不通。

JS基础系列之 —— WebSocket

假设我们现在有这样一个需求:多人聊天室。我的思路是客户端发送消息给服务器,然后服务器把聊天信息全部返回,看起来比较简单哈,但是其中有一个问题,如果我不发消息的话,服务器怎么把其他人的聊天信息返回呢?一个比较笨的方法就是一直询问服务器,其他人是否发消息。出现这样的情况是因为http协议是单向通信,只支持客户端到服务端的通信,不支持服务端到客户端的通信,那我们有没有什么更简单的解决方案呢?为了解决实时数据传输和双向通信的需求,我们的主角WebSocket登场了。

龙生   30 May 2023
View Details

深入浅出 OkHttp 源码解析及应用实践

OkHttp 在 Java 和 Android 世界中被广泛使用,深入学习源代码有助于掌握软件特性和提高编程水平。
本文首先从源代码入手简要分析了一个请求发起过程中的核心代码,接着通过流程图和架构图概括地介绍了 OkHttp 的整体结构,重点分析了拦截器的责任链模式设计,最后列举了 OkHttp 拦截器在项目中的实际应用。

在生产实践中,常常会遇到这样的场景:需要针对某一类 Http 请求做统一的处理,例如在 Header 里添加请求参数或者修改请求响应等等。这类问题的一种比较优雅的解决方案是使用拦截器来对请求和响应做统一处理。
在 Android 和 Java 世界里 OkHttp 凭借其高效性和易用性被广泛使用。作为一款优秀的开源 Http 请求框架,深入了解它的实现原理,可以学习优秀软件的设计和编码经验,帮助我们更好到地使用它的特性,并且有助于特殊场景下的问题排查。本文尝试从源代码出发探究 OkHttp 的基本原理,并列举了一个简单的例子说明拦截器在我们项目中的实际应用。本文源代码基于 OkHttp 3.10.0。

龙生   30 May 2023
View Details

windows 系统,PHP+Nginx 环境搭建

本次选用各中间件的最新版本。 Nginx-1.23.2 + PHP 8.2.0 + Mysql 8.0.31。 先去各自官网下载 windows 对应的安装包备用。   PHP 安装 解压安装包 配置 在解压的目录下复制 php.ini-development 到 php.ini 作为正式的配置文件。 设置常用信息 memory_limit = 128M (脚本可用的最大内存) error_reporting = E_ALL (显示错误等级) display_errors = On (是否显示错误) post_max_size = 8M (post 提交的最大容量) file_uploads = On (是否可以上传文件) upload_max_filesize = 2M (最大上传文件大小) max_file_uploads = 20 (最多上传文件数量) date.timezone = Asia/Shanghai (设置时区) 开启需要的扩展,常用扩展默认都包含,不需要去掉前面的注释   Mysql 安装 解压安装包 安装&配置 以管理员身份运行 cmd 切到解压后的 bin 目录 执行 mysqld -install 进行安装,完成后会提示 Service successfully installed. 执行 mysqld--initialize-insecure --user=mysql 初始化数据库 完成后会生成 data 目录 并在 data 目录中 xxx.err 文件中记录初始账号密码信息 把 bin 目录加入环境变量中 解压目录下新建 my.ini 文件,根据需求记入配置信息

  确认 执行 net start mysql 启动 mysql 服务 cmd 中或者其他客户端工具连接 mysql 测试 重置 root 密码,然后退出用新密码再次登录确认

  其他设置 查看编码 mysql> […]

龙生   30 May 2023
View Details