美文网首页PHP经验分享
PHP当作客户端访问连接另外一个socket的方法

PHP当作客户端访问连接另外一个socket的方法

作者: 山与清川 | 来源:发表于2019-07-12 15:23 被阅读0次

    描述:php文件作为前端界面 连接另外一个服务器的socket
    范围:所有php程序
    框架:workerman 下载地址:http://www.chtml.cn/product/show/10930

    官方示例 详细见AsyncTcpConnection类 workerman手册

    <?php
    use Workerman\Worker;
    use Workerman\Connection\AsyncTcpConnection;
    require_once __DIR__ . '/Workerman/Autoloader.php';
    
    $worker = new Worker();
    
    $worker->onWorkerStart = function($worker){
        // 设置访问对方主机的本地ip及端口(每个socket连接都会占用一个本地端口)
        $context_option = array(
            'socket' => array(
                // ip必须是本机网卡ip,并且能访问对方主机,否则无效
                'bindto' => '这是你的网卡ip:2333',
            ),
        );
    
        $con = new AsyncTcpConnection('ws://wb.youqiong.net:80', $context_option);
    
        $con->onConnect = function($con) {
            $con->send('hello');
        };
    
        $con->onMessage = function($con, $data) {
            echo $data;
        };
       $con->onClose = function($con) {
            // 如果连接断开,则在1秒后重连
            $con->reConnect(1);
        };
        $con->connect();
    };
    Worker::runAll();
    

    配合gateway-worker使用

        public static function onWorkerStart($businessWorker)
        {
            // 设置访问对方主机的本地ip及端口(每个socket连接都会占用一个本地端口)
            $context_option = array(
                'socket' => array(
                    // ip必须是本机网卡ip,并且能访问对方主机,否则无效
                    'bindto' =>'这是你的网卡ip:2333',
                ),
            );
    
            $con = new AsyncTcpConnection('ws://wb.youqiong.net:8887', $context_option);
    
            $con->onConnect = function($con) {
                $con->send('66666');
            };
    
            $con->onMessage = function($con, $data) {
                echo $data;
            };
            $con->onClose = function($con) {
                // 如果连接断开,则在1秒后重连
                $con->reConnect(1);
            };
            $con->connect();
        }
    

    获取自己服务器的网卡ip的方法
    1.centos ifconfig 7.0以上版本 ip addr
    2.window ipconfig
    3.ubuntu ifconfig

    注释:这块可以任意把这个代码片段放到任何一个workerman执行文件里 要是初始化的哪个流程中使用。

    相关文章

      网友评论

        本文标题:PHP当作客户端访问连接另外一个socket的方法

        本文链接:https://www.haomeiwen.com/subject/vrtykctx.html