使用swoole编写简单的echo服务器
Posted 两脚任从行处来,一灵常与气相随。有时四大熏熏醉,借问青天我是
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用swoole编写简单的echo服务器相关的知识,希望对你有一定的参考价值。
server.php代码如下:
<?php class EchoServer { protected $serv = null; public function __construct() { $this->serv = new swoole_server(\'0.0.0.0\', 8888); //配置参数 $this->serv->set(array( \'worker_num\' => 4, \'daemonize\' => 0, )); //注册回调函数 $this->serv->on(\'start\', array($this, \'start\')); $this->serv->on(\'connect\', array($this, \'connect\')); $this->serv->on(\'receive\', array($this, \'receive\')); $this->serv->on(\'close\', array($this, \'close\')); //启动服务 $this->serv->start(); } public function start($serv) { echo "start \\n"; } //有客户端连接时 public function connect($serv, $fd) { echo "connect \\n"; $serv->send($fd, "hello \\n"); } public function close($serv, $fd) { echo "close \\n"; } public function receive($serv, $fd, $from_id, $data) { echo "get message {$fd} : {$data} \\n"; //向客户端发送信息 $serv->send($fd, $data . "\\n"); } } $serv = new EchoServer();
client.php代码如下:
<?php class EchoClient { protected $client = null; public function __construct() { //注意这里需设置为异步,不然下面无法设置事件回调函数 $this->client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC); $this->client->on(\'connect\', array($this, \'connect\')); $this->client->on(\'receive\', array($this, \'receive\')); $this->client->on(\'close\', array($this, \'close\')); $this->client->on(\'error\', array($this, \'error\')); //连接服务端 $this->client->connect(\'0.0.0.0\', 8888); } public function connect($client) { echo "connect \\n"; } public function receive($client, $data) { echo "server send: {$data}"; //向标准输出写入数据 fwrite(STDOUT, "请输入消息:"); //获取标准输入数据 $msg = trim(fgets(STDIN)); //向服务端发送数据 $client->send($msg); } public function close($client) { echo "close \\n"; } public function error($client) { echo "error \\n"; } } $cli = new EchoClient();
然后分别运行这两个脚本
> /data/php56/bin/php server.php > /data/php56/bin/php client.php
运行结果如下:
以上是关于使用swoole编写简单的echo服务器的主要内容,如果未能解决你的问题,请参考以下文章
laravel 整合 swoole ,并简单 ab 测试对比性能以及在 PHPstorm 中利用debug调试配置swoole服务中的PHP代码