您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman常用组件-channel分佈式通訊組件-channelClient-unsubscribe
发布时间:2021-12-18 23:20:28编辑:雪饮阅读()
(
要求
Workerman
版本
>=3.3.0)
取消订阅某个事件,这个事件发生时将不会再触发on($event_name, $callback)
注册的回调$callback
$event_name
事件名称
void
那麽繼昨天7端通信的實例(http://www.gaojiupan.cn/manshenghuo/chengxurensheng/4594.html),我們可以結合
昨天那個登錄服務,我們實現比如登錄服務連續登錄10個用戶以後就‘謊報’説是服務過載。然後服務過載后,這裏假定就停止服務,然後取消訂閲。這種場景的模擬實現如:
則登錄服務如:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$http_worker = new Worker('http://0.0.0.0:4237');
$http_worker->onWorkerStart = function($http_worker)
{
//連接到channelServer 2206
Channel\Client::connect('127.0.0.1', 2206);
};
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
$event_name = 'user_login';
$event_data = array('uid'=>123, 'uname'=>'tom');
//用戶登錄事件發佈
Channel\Client::publish($event_name, $event_data );
//返回給http請求端
$connection->send("login success");
};
Worker::runAll();
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$http_worker = new Worker('http://0.0.0.0:4237');
$http_worker->onWorkerStart = function($http_worker)
{
//連接到channelServer 2206
Channel\Client::connect('127.0.0.1', 2206);
};
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
$event_name = 'user_login';
$event_data = array('uid'=>123, 'uname'=>'tom');
//用戶登錄事件發佈
Channel\Client::publish($event_name, $event_data );
//返回給http請求端
$connection->send("login success");
};
Worker::runAll();
然後連同昨天這些所必須的服務都啓動
[root@localhost www.fpm.com]# /usr/local/php734/bin/php -c /usr/local/php734/lib/php/php.ini channelServer.php start -d
Workerman[channelServer.php] start in DAEMON mode
------------------------------------------ WORKERMAN ------------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
------------------------------------------- WORKERS -------------------------------------------
proto user worker listen processes status
tcp root ChannelServer frame://0.0.0.0:2206 1 [OK]
-----------------------------------------------------------------------------------------------
Input "php channelServer.php stop" to stop. Start success.
[root@localhost www.fpm.com]# /usr/local/php734/bin/php -c /usr/local/php734/lib/php/php.ini login.php start -d
Workerman[login.php] start in DAEMON mode
----------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
------------------------------------------ WORKERS ------------------------------------------
proto user worker listen processes status
tcp root none http://0.0.0.0:4237 1 [OK]
---------------------------------------------------------------------------------------------
Input "php login.php stop" to stop. Start success.
[root@localhost www.fpm.com]# /usr/local/php734/bin/php -c /usr/local/php734/lib/php/php.ini wsServer.php start -d
Workerman[wsServer.php] start in DAEMON mode
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
-------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp root websocket websocket://0.0.0.0:4236 6 [OK]
--------------------------------------------------------------------------------------------------
Input "php wsServer.php stop" to stop. Start success.
然後客戶端過載則如:
关键字词:workerman,組件,channel,分佈式,channelClient,unsubscribe
相关文章
- workerman常用组件-channel分佈式通訊組件-channelCli
- workerman常用组件-channel分佈式通訊組件-channelCli
- workerman常用组件-channel分佈式通訊組件-channelCli
- workerman常用组件-channel分佈式通訊組件-channelSer
- workerman常用组件-channel分佈式通訊組件
- workerman常用组件-GlobalData变量共享组件-GlobalDat
- workerman常用组件-GlobalData变量共享组件-GlobalDat
- workerman常用组件-GlobalData变量共享组件-GlobalDat
- workerman常用组件-GlobalData变量共享组件-GlobalDat
- workerman常用组件-GlobalData变量共享组件-GlobalDat