swoole和erlang通信测试

本文介绍如何利用Docker快速搭建PHP Swoole服务环境,并详细展示了配置和服务启动的具体步骤。通过示例代码解释了Swoole服务器配置选项,包括监听地址、端口及数据包处理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接用docker跑环境

docker pull xlight/docker-php7-swoole
docker run -it -v ~/Projects/php/swoole:/workdir -p 9501:9501 xlight/docker-php7-swoole /bin/bash
php workdir/app_server.php start

 

app_server.php

<?php

$serv = new swoole_server("0.0.0.0", 9501);

$serv->set(array(
    'package_max_length' => 8192,
    'open_length_check'=> true,
    'package_length_offset' => 0,

    //大小端默认,组包方式{packet, 2}
    // 'package_body_offset' => 2,
    // 'package_length_type' => 'n'

    //大小端默认,组包方式{packet, 4}
    'package_body_offset' => 4,
    'package_length_type' => 'N'
));

$port = $serv->listen('127.0.0.1', 9502, SWOOLE_SOCK_UDP);
$port->on('packet', function($serv, $data, $addr){
    var_dump($serv, $data, $addr);
});

$serv->on('connect', function ($serv, $fd, $from_id){
    echo "[#".posix_getpid()."]\tClient@[$fd:$from_id]: Connect.\n";
});

$serv->on('receive', function (swoole_server $serv, $fd, $from_id, $data) {
    echo "[#".$serv->worker_id."]\tClient[$fd]: $data\n";
    if ($serv->send($fd, "hello\n") == false)
    {
        echo "error\n";
    }
});

$serv->on('close', function ($serv, $fd, $from_id) {
    echo "[#".posix_getpid()."]\tClient@[$fd:$from_id]: Close.\n";
});

$serv->start();

 

参数参考地址

 

转载于:https://www.cnblogs.com/ziyouchutuwenwu/p/5775577.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值