PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > PHP教程 > 正文

    PHP使用文本协议连接WorkerMan作为客户端向其它客户端推送数据

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:开启一个内部Gateway端口,用于推送数据通过PHP模拟客户端可能会受到复杂协议的限制不好操作,这时我们可以开启一个内部文本协议的Gateway...
    开启一个内部Gateway端口,用于推送数据
    通过PHP模拟客户端可能会受到复杂协议的限制不好操作,这时我们可以开启一个内部文本协议的Gateway端口,通过PHP代码使用文本协议连接WorkerMan作为客户端向其它客户端推送数据。

    示例(workerman-chat为例)

    服务端:新建文件Applications/Chat/start_text_gateway.php,用于增加一个文本协议Gateway端口,内容如下

    1. <?php 
    2. use \Workerman\Worker; 
    3. use \GatewayWorker\Gateway; 
    4. use \Workerman\Autoloader; 
    5. require_once __DIR__ . '/../../Workerman/Autoloader.php'
    6. Autoloader::setRootPath(__DIR__); 
    7.  
    8. // #### 内部推送端口(假设当前服务器内网ip为192.168.100.100) #### 
    9. $internal_gateway = new Gateway("Text://192.168.100.100:7273"); 
    10. $internal_gateway->name='internalGateway'
    11. $internal_gateway->startPort = 2800; 
    12. // 端口为start_register.php中监听的端口,聊天室默认是1236 
    13. $internal_gateway->registerAddress = '127.0.0.1:1236'
    14. // #### 内部推送端口设置完毕 #### 
    15.  
    16. if(!defined('GLOBAL_START')) 
    17.     Worker::runAll(); 

    客户端:在其它项目中就可以直接用PHP socket 使用文本协议调用,代码类似如下:

     

    1. // 建立连接,@see http://php.net/manual/zh/function.stream-socket-client.php 
    2. $client = stream_socket_client('tcp://192.168.100.100:7273'); 
    3. if(!$client)exit("can not connect"); 
    4. // 模拟超级用户,以文本协议发送数据,注意Text文本协议末尾有换行符(发送的数据中最好有能识别超级用户的字段),这样在Event.php中的onMessage方法中便能收到这个数据,然后做相应的处理即可 
    5. fwrite($client, '{"type":"send","content":"hello all", "user":"admin", "pass":"******"}'."\n"); 

     

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-10-5369-1.html
    相关热词搜索: