您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman常用组件-channel分佈式通訊組件-channelClient-publish-實現7端通信
发布时间:2021-12-17 22:57:08编辑:雪饮阅读()
[root@localhost www.fpm.com]# /usr/local/php734/bin/php -c /usr/local/php734/lib/php/php.ini channelServer.php start [root@localhost www.fpm.com]# /usr/local/php734/bin/php -c /usr/local/php734/lib/php/php.ini wsServer.php start [root@localhost www.fpm.com]# /usr/local/php734/bin/php -c /usr/local/php734/lib/php/php.ini login.php start 我們將這套代碼運行在兩個瀏覽器(或者同瀏覽器標簽頁應該也是可以的哈)。
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
// 不传参数默认是监听0.0.0.0:2206
$channel_server = new Channel\Server();
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}
?>
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// websocket服务端
$worker = new Worker('websocket://0.0.0.0:4236');
$worker->name = 'websocket';
$worker->count = 6;
// 每个worker进程启动时
$worker->onWorkerStart = function($worker)
{
// Channel客户端连接到Channel服务端
Channel\Client::connect('127.0.0.1', 2206);
// 订阅用戶登錄事件,并注册事件回调
Channel\Client::on('user_login', function($event_data)use($worker){
// 向当前所有websocket客戶端通知有用戶登錄了系統
foreach($worker->connections as $connection)
{
$connection->send(json_encode($event_data));
}
});
};
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();
<html>
<head>
<script>
ws = new WebSocket("ws://192.168.43.170:4236");
ws.onmessage = function(e) {
console.log("收到服务端的消息:" + e.data);
};
ws.onopen=function(){
};
</script>
</head>
<body>
<div class="container">
<h1>恭喜, 站点创建成功!</h1>
<h3>这是默认index.html,本页面由系统自动生成</h3>
<ul>
<li>本页面在FTP根目录下的index.html</li>
<li>您可以修改、删除或覆盖本页面</li>
<li>FTP相关信息,请到“面板系统后台 > FTP” 查看</li>
</ul>
</div>
</body>
</html>
关键字词:workerman,channel,channelClient,publish
相关文章
- 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
- workerman常用组件-GlobalData变量共享组件-GlobalDat