2017-11-18 1 views
0

정보

enableKeepAlive 구성이 작동하지 않는 것 같고 설명서에 올바르게 설정하는 방법에 대한 설명조차 없습니다. http://socketo.me/docs/websocket래칫 서버의 enableKeepAlive가 연결을 닫지 않았습니까?

휴대 전화를 사용하여 연결을 테스트 한 다음 Wi-Fi와 데이터를 모두 껐습니다. 클라이언트는 절대로 연결이 끊어지지 않았습니다.

내 코드 : 채팅 - server.php

<?php 
use Ratchet\Server\IoServer; 
use Ratchet\Http\OriginCheck; 
use Ratchet\Http\HttpServer; 
use Ratchet\WebSocket\WsServer; 
use MyApp\Chat; 

require dirname(__DIR__) . '/vendor/autoload.php'; 

$loop = React\EventLoop\Factory::create(); 
$loop->run(); 
$checkedApp = new WsServer(new Chat()); 
$checkedApp->enableKeepAlive($loop, 5); 
//$checkedApp = new OriginCheck(new WsServer(new Chat()), array('localhost')); 
$checkedApp = new OriginCheck($checkedApp); 
$checkedApp->allowedOrigins[] = 'mywebsite.com'; 

$server = IoServer::factory(
    new HttpServer(
     $checkedApp 
    ), 
    8082 
); 

//works, so loop works 
/* 
$server->loop->addPeriodicTimer(5, function() use ($server) {   
    foreach ($server->app->clients as $client) {     
      $client->send("hello client");   
    } 
}); 
*/ 

$server->run(); 

답변

0

신난다, 그것은이 페이지에 덮여 그래서 : http://socketo.me/docs/migration-3

, 다음 enableKeepAlive 서버를 생성 한 후 :

<?php 
use Ratchet\Server\IoServer; 
use Ratchet\Http\OriginCheck; 
use Ratchet\Http\HttpServer; 
use Ratchet\WebSocket\WsServer; 
use MyApp\Chat; 

require dirname(__DIR__) . '/vendor/autoload.php'; 

//$loop = React\EventLoop\Factory::create(); 
//$loop->run(); 
$checkedApp = new WsServer(new Chat()); 
//$checkedApp->enableKeepAlive($loop, 5); 
//$checkedApp = new OriginCheck(new WsServer(new Chat()), array('localhost')); 
$checkedAppToPass = new OriginCheck($checkedApp); 
$checkedAppToPass->allowedOrigins[] = 'mywebsite.com'; 

$server = IoServer::factory(
    new HttpServer(
     $checkedAppToPass 
    ), 
    8082 
); 

$checkedApp->enableKeepAlive($server->loop, 10); 

//works, so loop works 
/* 
$server->loop->addPeriodicTimer(5, function() use ($server) {   
    foreach ($server->app->clients as $client) {     
      $client->send("hello client");   
    } 
}); 
*/ 

$server->run(); 
관련 문제