Download the PHP package immusen/yii2-swoole-websocket without Composer
On this page you can find all versions of the php package immusen/yii2-swoole-websocket. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download immusen/yii2-swoole-websocket
More information about immusen/yii2-swoole-websocket
Files in immusen/yii2-swoole-websocket
Package yii2-swoole-websocket
Short Description Websocket server for Yii2 base on swoole 4, Support JSONRPC, Resolve 'method' as a route reflect into controller/action, And support http or redis pub/sub to trigger async task from your web application.
License Apache-2.0
Informations about the package yii2-swoole-websocket
Websocket rpc server For Yii2 Base On Swoole 4
Websocket server for Yii2 base on swoole 4, Support JSON-RPC, Resolve 'method' as a route reflect into controller/action, And support http or redis pub/sub to trigger async task from your web application.
Installation
Install Yii2: Yii2.
Install swoole: swoole, recommend version 4+.
Other dependency: php-redis extension.
The preferred way to install this extension is through composer.
Either run
or add
to the require section of your composer.json
file.
Test or Usage
after installation, cd project root path, e.g. cd yii2-advanced-project/
run:
config :
or coding in ./websocket/controllers/
Example:
Chat room demo, code: ./example/websocket/controllers/RoomController.php
client join room: websocket client send:
the websocket client which had joined same room (id:100111) will get message like this:
chat message websocket client send:
this room member will get:
Coding:
1, Create Controller under websocket/controllers, or other path which defined with "controllerNamespace" in websocket/config/main.php
2, Send JSON-RPC to trigger that action
All of client to server rpc command also can send by HTTP or Redis publish, This feature will helpful for some async task triggered from web application. Example in chat room case:
HTTP request:
OR redis-cli:
OR in Yii web application
OR use Hook (recommend), Support 'runOnce' to keep method run only once even if multiple swoole instances online, @see immusen/yii2-swoole-websocket/Hook.php