workmanドキュメントのインストール:http://doc.workerman.net/install/install.html(公式ドキュメント)(laravelフレームワーク)プロジェクトAppConsoleCommandsTestの下に次のようなタイミングファイルを新規作成します:WorkermanCommand コードは次のとおりです: /**websocket
* Class WorkermanCommand
* @package App\Console\Commands\Test
*/
class WorkermanCommand extends Command
{
protected $signature = 'workman {action} {--d}';
protected $description = 'Start a Workerman server.';
public function handle()
{
global $argv;
$action = $this->argument('action');
$argv[0] = 'wk';
$argv[1] = $action;
$argv[2] = $this->option('d') ? '-d' : '';
$this->start();
}
private function start()
{
// : websocket
$ws_worker = new Worker("websocket://0.0.0.0:1234");
// 1
$ws_worker->count = 1;
// hello $data
$ws_worker->onMessage = function ($connection, $data) {
// hello $data
$connection->send('hello ' . $data);
};
// worker
Worker::runAll();
}
}
テストサーバshellでphp artisan workman startを実行図に示すように、が正常にオープンしたことを示します.
テストでchromeブラウザを開き、F 12を押してデバッグコンソールを開き、Consoleの欄に入力(またはhtmlページに次のコードを入れるjsで実行)//サービス側ipが40.88であると仮定する.10.1 ws = new WebSocket("ws://40.88.10.1:1234"); ws.onopen=function(){alert("接続成功");ws.send('tom');alert("サービス側に文字列を送信:tom");};ws.onmessage=function(e){alert(「サービス側からメッセージを受信:」+e.data);};結果は以下の通りである: timerタイマの参照を追加するhttp://doc.workerman.net/timer/add.html公式文書