赞
踩
有些文档写的都是不按照套路出牌,这个Gateway 集成到php mvc 框架需要下载这个demo 直接通过 php包管理下载是有bug的。把demo 放到项目 application 中,修改start。php 即可启动。
之后即可通过 events.php 监听 服务。
注意:
如果GatewayClient和GatewayWorker不是在同一台服务器上,则需要先将start_gateway.php中的lanIp改成当前服务器的内网ip(如果不在一个内网可改成公网ip)。
如果GatewayClient和GatewayWorker在同一台服务器上运行,则不用做任何更改,直接按照示例使用GatewayClient即可。
通过GatewayClient发送的数据不会经过Event.php,而是直接经由Gateway进程转发给客户端。
GatewayClient无法接收客户端发来的数据。
require_once '/your/path/GatewayClient/Gateway.php'; /** * gatewayClient 3.0.0及以上版本加了命名空间 * 而3.0.0以下版本不需要use GatewayClient\Gateway; **/ use GatewayClient\Gateway; /** *====这个步骤是必须的==== *这里填写Register服务的ip和Register端口,注意端口不是gateway端口 *ip不能是0.0.0.0,端口在start_register.php中可以找到 *这里假设GatewayClient和Register服务都在一台服务器上,ip填写127.0.0.1。 *如果不在一台服务器则填写真实的Register服务的内网ip(或者外网ip) **/ Gateway::$registerAddress = '127.0.0.1:1236'; // 以下是调用示例,接口与GatewayWorker环境的接口一致 // 接口具体使用方法见《Lib\Gateway类提供的接口》一章 // 注意除了不支持sendToCurrentClient和closeCurrentClient方法 // 其它方法都支持 Gateway::sendToAll($data); Gateway::sendToClient($client_id, $data); Gateway::closeClient($client_id); Gateway::isOnline($client_id); Gateway::bindUid($client_id, $uid); Gateway::isUidOnline($uid); Gateway::getClientIdByUid($uid); Gateway::unbindUid($client_id, $uid); Gateway::sendToUid($uid, $data); Gateway::joinGroup($client_id, $group); Gateway::sendToGroup($group, $data); Gateway::leaveGroup($client_id, $group); Gateway::getClientCountByGroup($group); Gateway::getClientSessionsByGroup($group); Gateway::getAllClientCount(); Gateway::getAllClientSessions(); Gateway::setSession($client_id, $session); Gateway::updateSession($client_id, $session); Gateway::getSession($client_id);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。