作者 karlet

feat:websocket Stop修复

@@ -187,5 +187,7 @@ class Websocket @@ -187,5 +187,7 @@ class Websocket
187 187
188 public function stop():void{ 188 public function stop():void{
189 $this->client->close(); 189 $this->client->close();
  190 + swoole_timer_clear($this->timerPing);
  191 + swoole_timer_clear($this->timerCheck);
190 } 192 }
191 } 193 }
1 <?php 1 <?php
2 namespace Jiaoyin; 2 namespace Jiaoyin;
3 //格式化输出 3 //格式化输出
4 -function output(){ 4 +use Swoole\Process;
  5 +
  6 +function output(): void
  7 +{
5 $args = func_get_args(); 8 $args = func_get_args();
6 $outStr = '['.timeFormat('ms').']:'; 9 $outStr = '['.timeFormat('ms').']:';
7 foreach($args as $key => $value){ 10 foreach($args as $key => $value){
@@ -14,7 +17,8 @@ function output(){ @@ -14,7 +17,8 @@ function output(){
14 echo $outStr.PHP_EOL; 17 echo $outStr.PHP_EOL;
15 } 18 }
16 //格式化时间 19 //格式化时间
17 -function timeFormat($type='s',$format='Y-m-d H:i:s'){ 20 +function timeFormat($type='s',$format='Y-m-d H:i:s'): string
  21 +{
18 date_default_timezone_set('Asia/Shanghai'); 22 date_default_timezone_set('Asia/Shanghai');
19 $microTime = microtime(); 23 $microTime = microtime();
20 list($msTime,$sTime) = explode(' ',$microTime); 24 list($msTime,$sTime) = explode(' ',$microTime);
@@ -26,7 +30,7 @@ function timeFormat($type='s',$format='Y-m-d H:i:s'){ @@ -26,7 +30,7 @@ function timeFormat($type='s',$format='Y-m-d H:i:s'){
26 } 30 }
27 31
28 // 获取当前时间的微秒数 32 // 获取当前时间的微秒数
29 -function getMicrotime() 33 +function getMicrotime(): float|int
30 { 34 {
31 list($uSec, $sec) = explode(' ', microtime()); 35 list($uSec, $sec) = explode(' ', microtime());
32 return $sec*1000+round($uSec*1000); 36 return $sec*1000+round($uSec*1000);
@@ -43,7 +47,8 @@ function getPrecision($number): int @@ -43,7 +47,8 @@ function getPrecision($number): int
43 return $count; 47 return $count;
44 } 48 }
45 49
46 -function getIntervalUnit($interval,$type='s'){ 50 +function getIntervalUnit($interval,$type='s'): float|int
  51 +{
47 $unitTime = 0; 52 $unitTime = 0;
48 if($interval == '1m'){ 53 if($interval == '1m'){
49 $unitTime = 60; 54 $unitTime = 60;
@@ -65,3 +70,17 @@ function getIntervalUnit($interval,$type='s'){ @@ -65,3 +70,17 @@ function getIntervalUnit($interval,$type='s'){
65 } 70 }
66 return $type == 's' ? $unitTime : $unitTime*1000; 71 return $type == 's' ? $unitTime : $unitTime*1000;
67 } 72 }
  73 +
  74 +//以守护进程运行
  75 +function runAsDaemon($callback,$isDaemon=true): void
  76 +{
  77 + if($isDaemon){
  78 + Process::daemon();
  79 + $process = new Process(function ()use ($callback){
  80 + call_user_func($callback);
  81 + });
  82 + $process->start();
  83 + }else{
  84 + call_user_func($callback);
  85 + }
  86 +}