0

wamp サーバー WAMPServer2.0 を使用して開発用 window7 PC でPHP WebSocket サーバー 0.2 ( http://code.google.com/p/php-websocket-server/ ) を使用しています。

  1. Apache モジュールをインストール/アクティブ化していません。
  2. PHP の php_sockets 拡張機能を有効にしました。

私のソケット サーバーは、ローカルホストと LAN IP アドレスを LAN で使用して正常に動作しますが、ライブ サーバーに同じ設定で同じコードを実装すると、動作しません。

ライブサーバー上

  1. 「php socket-server.php」を実行した後、エラーはありません。
  2. しかし、javascript を使用してソケット サーバーに接続しようとすると、接続されません。

私のライブ サーバーは CENTOS 5.8、Apache/2.2.20、PHP/5.2.17 です。

私は何を間違っていますか?Apache には追加のモジュールが必要ですか?

- 編集 -

サポートに連絡した後、ポート 9300 が有効になりましたが、クライアントはサーバーに接続できません。

しかし、サーバー側では、スクリプトによると、クライアントが接続されるとすぐに切断されます。

ここに画像の説明を入力

- 編集 -

VMwareのhttp://www.turnkeylinux.org/lampstackで同じスクリプトが正常に動作しています。

4

2 に答える 2

0

最高の詳細レベルで curl または ncat を使用して、コマンド ラインから Websocket サーバーに接続してみてください。問題がなければ、アップグレード ヘッダーが表示されます。問題はおそらくファイアウォールにあります。

また、nmap を使用することもできます。これは、websocket 接続を開こうとしている範囲内に開いているポートがあるかどうかを判断するのに非常に役立ちます。

また、実稼働環境では、エラー報告レベルを E_NONE にする必要があります。

ところで、どの種類のライブ サーバーがありますか (VPS/VDS、専用など)?

于 2012-10-13T19:57:55.290 に答える
0

答えは簡単です

Javascript / Ajax セキュリティはクロスドメイン接続をサポートしていません

サーバーがhttp://myserver.comにあり、スクリプトがhttp://myserver.com:9300で実行されている 場合、javascript はこれが別のドメインであることを認識します。

そうしたい場合は、次のようにします。

1-「/live」をhttp://servers.com:9300に転送する apache を使用して http-proxy を作成します。 2-次に、javascript を /live に接続すると、apache プロキシがジョブを実行します。

プロキシの作成に行き詰まっている場合は、「openfire 用の apache プロキシ パス」を検索すると、その方法の良い例が見つかります。

これには root アクセスが必要になることに注意してください。または、ホスト管理者にこのプロキシ転送を追加するよう依頼することもできます。

于 2012-10-07T10:36:14.790 に答える