Vaksel

Untitled

Nov 3rd, 2021
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. Loop::run(function () use ($urls, $pingInterval, $startTime, $symbols, $redis){
  2. /** @var Client\Connection[] $connections */
  3.  
  4. $connectionMessage = [
  5. 'type' => 'subscribe',
  6. 'topic'=> '/spotMarket/tradeOrders',
  7. 'privateChannel'=>true,
  8. 'response'=>true
  9. ];
  10.  
  11. foreach ($urls as $key => $url)
  12. {
  13. $connect = yield connect($url);
  14.  
  15. $connect->send(json_encode($connectionMessage));
  16.  
  17. Amp\Loop::repeat(10000, function () use($redis, $connect)
  18. {
  19. $ping = json_encode(['type' => 'ping']);
  20.  
  21. $connect->send($ping);
  22. });
  23.  
  24. $connections[] = $connect;
  25. }
  26.  
  27. $i = 0;
  28. $a = 0;
  29.  
  30. /** @var Websocket\Message $message */
  31. while (true)
  32. {
  33. foreach ($connections as $key => $connection)
  34. {
  35.  
  36. $message = yield $connection->receive();
  37. if(!empty($message))
  38. {
  39. $payload = yield $message->buffer();
  40.  
  41. Amp\asyncCall(function () use ($redis, $payload){
  42.  
  43. yield $redis->set('asyncCallPayload' . time(), $payload);
  44.  
  45. $payload = json_decode($payload,true);
  46.  
  47. if(!empty($payload['type']))
  48. {
  49. if($payload['type'] !== 'welcome' && $payload['type'] !== 'pong')
  50. {
  51. yield $redis->set('socketResOther'. time(), json_encode($payload));
  52. }
  53. elseif($payload['type'] === 'welcome')
  54. {
  55. yield $redis->set('socketResWelcome'. time(), json_encode($payload));
  56. }
  57. }
  58.  
  59. if(!empty($payload['subject']) && !empty($payload['data']))
  60. {
  61. $payloadData = $payload['data'];
  62.  
  63. yield $redis->set('socketResData'. time(), json_encode($payload));
  64.  
  65. $this->executeKucoinOrderListenerProcessing($payloadData);
  66. }
  67. });
  68.  
  69.  
  70.  
  71. }
  72. }
  73.  
  74. if(yield $redis->has('laravel_database_handlerRedisFlagKucoin'))
  75. {
  76. yield $redis->set('connectionIsCloseDelete'. time(), true);
  77.  
  78. yield $redis->delete('laravel_database_handlerRedisFlagKucoin');
  79. Loop::stop();
  80.  
  81. break;
  82. }
  83.  
  84. yield new Delayed(1000);
  85. }
  86.  
  87. // $blockDetector->stop();
  88.  
  89. });
Advertisement
Add Comment
Please, Sign In to add comment