Skip to content

Commit 622f9db

Browse files
committed
优化websocket json解析器
1 parent 3e077ab commit 622f9db

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/Component/WebSocket/WebSocketJsonParser.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,20 @@ class WebSocketJsonParser implements ParserInterface
3333
*/
3434
public function decode($raw, $client) : ? Caller
3535
{
36+
//解析错误回调方法
37+
$exception = '\App\WebSocket\EventListener::onMessageException';
38+
3639
// 解析 客户端原始消息
3740
$data = json_decode($raw, true);
3841
if (!is_array($data)) {
39-
echo "decode message error! \n";
42+
$e = new \Exception('The body is not in JSON format!', 1);
43+
$exception($e, $raw);
4044
return null;
4145
}
4246

4347
if(!isset($data['cmd'])){
44-
echo "cmd parameter does not exist. \n";
48+
$e = new \Exception('Parameter "cmd" does not exist!', 2);
49+
$exception($e, $raw);
4550
return null;
4651
}
4752
$cmd = explode('.', $data['cmd']);
@@ -64,7 +69,8 @@ public function decode($raw, $client) : ? Caller
6469
// $class = '\\App\\WebSocket\\'. ucfirst($cmd[0] ?? 'Index');
6570

6671
if(!class_exists($class)){
67-
echo "cmd class $class does not exist. \n";
72+
$e = new \Exception("Controller class {$class} does not exist!", 3);
73+
$exception($e, $raw);
6874
return null;
6975
}
7076
$caller->setControllerClass($class);

0 commit comments

Comments
 (0)