start.php
<?php
use \Workerman\Worker;
use \Workerman\WebServer;
use \GatewayWorker\Gateway;
use \GatewayWorker\BusinessWorker;
use \Workerman\Autoloader;
// 自動(dòng)加載類
require_once __DIR__ . '/../../Workerman/Autoloader.php';
Autoloader::setRootPath(__DIR__);
// gateway 進(jìn)程
$gateway = new Gateway("http://0.0.0.0:8585");
// 名稱,以便status時(shí)查看方便
$gateway->name = 'HouseholdGateway';
// 開啟的進(jìn)程數(shù),建議與cpu核數(shù)相同
$gateway->count = 4;
// 分布式部署時(shí)請?jiān)O(shè)置成內(nèi)網(wǎng)ip(非127.0.0.1)
$gateway->lanIp = '127.0.0.1';
// 內(nèi)部通訊起始端口,假如$gateway->count=4,起始端口為4000
// 則一般會使用4001 4002 4003 4004 4個(gè)端口作為內(nèi)部通訊端口
$gateway->startPort = 4000;
// 心跳間隔
$gateway->pingInterval = 10;
// 心跳數(shù)據(jù)
$gateway->pingData = '{"type":"ping"}';
// bussinessWorker 進(jìn)程
$worker = new BusinessWorker();
// worker名稱
$worker->name = 'HouseholdBusinessWorker';
// bussinessWorker進(jìn)程數(shù)量
$worker->count = 4;
Event.php
public static function onMessage($client_id, $message)
{
//judgement the
if(empty($message)){
$returnMessage = echoJson("300","no any params");
Gateway::sendToClient($client_id,$returnMessage);
}else{
file_put_contents("message.txt",$message);
}
}
用的http協(xié)議,此處返回的message包含了頭信息,而不是單純的json,使得無法直接用json_decode解析,請問框架就是這樣設(shè)計(jì)的,還是我搞錯(cuò)了