首页 > 其他 > 详细

wokerman中自定义协议的使用和测试

时间:2021-06-10 22:46:02      阅读:23      评论:0      收藏:0      [点我收藏+]

今天给大家分享一个wokerman的自定义协议使用,以及最后的测试结果。

根据wokerman的自定义协议文档,简单使用text文本协议,telnet测试,协议内容是json串+\n为传输协议

在wokerman->wokerman->Protocols下新建文件例如Xieyi.php

<?php

namespace Wokerman\Protocols;

class Xieyi {

  //分包(检验包的完整性)

  public static function input($data) {

    $pos = strpos($data,‘\n‘);

    if ($pos===false) {

      return 0;

    } else {

      return $pos+1;

    }

  }

  //打包(客户端传递过来的json数据进行打包加结束符\n)

  public static function encode($data) {

    return json_encode($data).‘\n‘;

  }

  //解包(服务端传递过来的array数据进行解包)

  public static function decode($data) {

    return json_decode(trim($data),true);

  }

}

?>

 

然后再项目中创建文件start.php使用代码如下:

<?php

use Workerman\Worker;
require_once __DIR__ . ‘/vendor/workerman/workerman/Autoloader.php‘;

$zidingyi = new Woker(‘Xieyi://0.0.0.0:1234‘);

$zidingyi->onMessage = function($connection,$data) { //$data数据就是当客户端发给服务端时协议会自动解包数据

  $connection->send(array(‘code‘=>‘0‘,‘msg‘=>‘ok‘)); //当服务端把数据发给客户端时协议会自动打包数据

}

Worker::runAll();

?>

测试阶段:需要使用

cmd->到start.php文件下->php start.php 开启workerman服务器

技术分享图片

 

 然后再打开一个

cmd->telnet 127.0.0.1 1234

直接输入\n就是发个空数据

{"type":"message"}\n 

今天就分享到这里了,有什么疑问可以留言。

wokerman中自定义协议的使用和测试

原文:https://www.cnblogs.com/sxiangyues/p/14871326.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!