GatewayWorker使用方式及工作原理

本文详细介绍了GatewayWorker的使用方法,包括安装、启动流程、工作原理,通过示例演示了如何在WebSocket协议下搭建服务端,并深入剖析了uid绑定和内部通讯机制。适合进一步理解Workerman及其在即时通讯中的应用。

GatewayWorker使用与原理


前言

想要成为一个出色的PHPrd,进阶之路便是毫无方向,异常艰辛,接下来我们就了解一下即时通讯中gatewayworker的使用方式以及工作原理。

一、GatewayWorker是什么?

gateway是一款出色的即时通讯框架。它是给予workerman 进行扩展的故满足workerman的所有使用方法。也是在tcp|ip协议基础上构建有效的长链接从而抛弃客户端进行轮询实现"长连接",
gateway常用于快速开发TCP长连接应用, 例如 app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等等

二、安装以及启动(linux)

GatewayWorker下载地址

1,将压缩包打包上传到Linux服务器,并减压
2,进入目录文件 会看到start.php (启动文件)并执行 php start.php  start
  注 :  linux  环境中配置php环境变量后才可使用 php start.php  start,否则只能执行 php 环境目录 tart.php  start
3,,启动会出现三个端口分别是  
	gateway 端口	---	用来供外部连接构建长连接
	register 端口   ---  用来注册内部通信端口 (用于 register 连接 gateway)
	business 端口   ---	用来注册内容通信端口(business 与 gateway 进行数据通信)
  注:
  	若三个端口配置成一致端口会导致端上与服务端构建长链接时时好时坏。
  	gateway端口必须外部可访问,需在服务云厂商安全组中打开以及在服务器的防火墙中允许通过

三、工作原理

  1,gateway,register,business  各个进程启动
  2,gateway和business向register连接注册
  3,register 接受到 gateway的注册后,会将所有的注册存储到内存中
  4,register 接受到 business的注册后, 把内存中的gateway的通讯地址发送business
  5,business收到gateway的内部通讯地址并进行尝试连接以此构成 gateway, business, register 相互连接。
  6,当gateway下线时,register收到下线通知后,然后将新的gateway内部连接通讯地址广播给buiness进行连接, 
  buiness 不在连接已下线的gateway地址。
  7,至此Gateway与BusinessWorker通过Register已经建立起长连接
  8,当客户端连接gateway时, gateway将信息传递给business,business进行业务处理进行onStartWorker, onConnect 事件,
  最终连接成功后通过business中的onMessage事件

四、简单demo示例

此处长连接协议为websocket
gateway-worker 服务端

start_gateway.php 代码修改

use \Workerman\Worker;
// 自动加载类
require_once __DIR__ . '/../../vendor/autoload.php';
// 
$gateway = new Gateway("websocket://x.x.x.x:8089"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值