Skip to content

Latest commit

 

History

History
20 lines (12 loc) · 1002 Bytes

README.md

File metadata and controls

20 lines (12 loc) · 1002 Bytes

一个关于UDP推送的想法

为了省电,为了支持更多客户端,为了节省连接资源……

废话省略一万字。

仍然是基于C/S模型 swoole框架

  1. 客户端首先向服务端发送一个消息,表示自己想“连接”(当然是连接不鸟的,因为是UDP)。
  2. 服务端接收到客户端的信息报文,我们可以拿到 客户端的 IP PORT ,然后存到一张注册表中 。
  3. 如果服务端接收报文成功会给客户端回复一个消息,表示“我愿意为您服务,sir”,此时客户端收到之后就阻塞在这里等待读取服务端的消息。
  4. 如果客户端网络环境变化,掉线等等情况出现,那么客户端要再次连接服务端注册自己的身份。

代码实现php + swoole

代码关键词

socket读写 stream_socket_client fwrite fread swoole_table swoole_server

客户端的socket要死循环读,客户端心跳周期要考虑,目前还没做心跳机制