idutch / crossbarhttpbridge
一个用于通过Crossbar的HTTP-Bridge发布事件和调用远程过程的Laravel库
dev-master
2024-01-25 20:20 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.2
This package is auto-updated.
Last update: 2024-09-25 21:37:52 UTC
README
Laravel的Crossbar HTTP Bridge服务
安装
- 运行以下命令
composer require idutch/crossbarhttpbridge php artisan vendor:publish
- 将以下内容添加到您的.env文件中
CROSSBAR_HTTP_BRIDGE_URI=https://your.crossbar.service:443
CROSSBAR_HTTP_BRIDGE_VERIFY_SSL=true or false
CROSSBAR_HTTP_BRIDGE_PUBLISH_PATH=/publish
CROSSBAR_HTTP_BRIDGE_CALL_PATH=/call
- 如果您已配置Crossbar服务器仅接受签名请求,则还需将以下内容添加到您的.env文件中
CROSSBAR_HTTP_BRIDGE_PUBLISHER_KEY=your_publisher_key
CROSSBAR_HTTP_BRIDGE_PUBLISHER_SECRET=your_publisher_secret
CROSSBAR_HTTP_BRIDGE_CALLER_KEY=your_caller_key
CROSSBAR_HTTP_BRIDGE_CALLER_SECRET=your_caller_secret
示例
<?php namespace App\Http\Controllers; use iDutch\CrossbarHttpBridge\CrossbarHttpBridgeInterface; class HomeController extends Controller { /** * Show the application dashboard. * @param CrossbarHttpBridgeInterface $crossbarHttpBridge * @return \Illuminate\Http\Response */ public function index(CrossbarHttpBridgeInterface $crossbarHttpBridge) { //Publish 'Hello world!' to topic.name $crossbarHttpBridge->publish('topic.name', [['message' => 'Hello world!']]); //Get all active subscriptions on topic.name from the server $subscription = $crossbarHttpBridge->call('wamp.subscription.lookup', ['topic.name']); $clients = []; if (!is_null($subscription['args'][0])) { $subscribers = $crossbarHttpBridge->call('wamp.subscription.list_subscribers', [$subscription['args'][0]]); foreach ($subscribers['args'][0] as $key => $subscriber) { $clients[$key] = $crossbarHttpBridge->call('wamp.session.get', [$subscriber])['args'][0]; } } return view('home', ['clients' => $clients]); } }