swoole学习之路(二)服务端和客户端

同步和异步
  • 概念

同步与异步的重点在消息通知的方式上,也就是调用结果通知的方式。
同步: 当一个同步调用发出去后,调用者要一直等待调用结果的通知后,才能进行后续的执行。
异步: 当一个异步调用发出去后,调用者不能立即得到调用结果的返回。
生活中的例子:
同步买奶茶:小明点单交钱,然后等着拿奶茶;
异步买奶茶:小明点单交钱,店员给小明一个小票,等小明奶茶做好了,再来取。

  • 服务端
//创建Server对象,监听 0.0.0.0(所有客户端):9501端口
$host = "0.0.0.0";
$server = new Swoole\Server($host, 2538);
//监听连接进入事件
$server->on('Connect', function ($serv, $fd) {
   
    echo "Client:新的客户端进入 Connect.".date('Y-m-d H:i:s')."\n";
});

//监听数据接收事件
$server->on('Receive', function ($serv, $fd, $from_id, $data) {
   
    echo '我是服务端,接收到了'.$data;
    $serv->send($fd, "Server把数据返回给你: "."server发送过来的".$data);
});

//监听连接关闭事件
$server->on('Close', function ($serv, $fd) {
   
    echo "Client: Close.\n";
});

echo "tcp:101.200.217.212";

$server->set([
    'worker_num'=>1#设置进程数目
]);
//启动服务器
$server->start();
  • 同步客户端
//同步客户端 代码示例
$client = new Swoole\Client(SWOOLE_SOCK_TCP);

if (!$client->connect('127.0.0.1', 2538,3)) {
   
    exit("connect failed. Error: {$client->errCode}\n");

你可能感兴趣的:(swoole)