2

ラチェット webSocket サーバーを実行していますが、正常に動作します。問題は、ハンドシェイクの直後に一部の接続が閉じていることです。

stackOverflow と google を検索した後、ssl を使用すると接続が閉じられなくなるため、wss を使用する必要があることがわかりました。さらに読んだ後、wssはまだラチェットに実装されておらず、解決策はラチェットをstunnelでワープすることであることがわかりました。これを実装する方法について再度ヘルプを検索しましたが、見つかりませんでした。

スタネルでラチェットをワープするには?この問題を解決するより良い方法はありますか? 私は本当に初心者で、sslの問題をすべて扱います。

ありがとう!

4

1 に答える 1

5

ローカル接続のみを受け入れるようにラチェット Websocket をセットアップします。

$webSock = new Server($loop);
$webSock->listen(8080, '127.0.0.1'); // local connections only
$session = $this->getContainer()->get('session.provider');
$server = new IoServer(new WsServer($session), $webSock, $loop);

サーバー証明書を生成します。ubuntu の適切な手順はこちらです。

次にstunnelをインストールします。Ubuntu の手順はこちら

新しい証明書を使用するように stunnel を構成し、安全なポートで接続を受け入れ、それらを websocket サーバーにトンネリングします。

cert = /etc/ssl/certs/server.crt
key = /etc/ssl/private/server.key
...
[websockets]
accept = 8443
connect = 8080

stunnel を開始すると、レースに出られるはずです。

于 2013-05-07T17:40:26.153 に答える