2

ローカルマシンのサーバーにWebSocketを接続できました。しかし、ファイルをリモートのubuntuサーバーにアップロードすると、それ以上機能しなくなります。

サーバー側コード(server.php):

$master = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($master, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($master, "127.0.0.1", 80);
socket_listen($master, 20);

クライアント側のコード:

<script type="text/javascript">
var host = "ws://127.0.0.1:80/server.php";
socket = new WebSocket(host);
</script>

Chrome Canaryバージョン24からクライアントページを開きましたが、サーバー側で受け入れられたソケットが取得されませんでした。

ホストを「ws://xx.xx.xx.xx:80 / server.php」にサーバーの実際のIPアドレスに変更しましたが、機能しません。また、サーバー側のsocket_bind($ master、 "127.0.0.1"、80)を実際のIPに変更しました。

誰かが私を助けることができますか?

ありがとう、

ジャスミン

4

1 に答える 1

0

私の友人、あなたがサーバーを書くとき。サービスとして実行し続けるか、単に実行し続ける必要があります。PHP サーバーの場合、ブラウザからではなく、PHP Cli (php yourfile.php) からそのファイルを実行する必要があります (タイムアウトを 0 に設定することはできますが、ブラウザを閉じると、サーバーは動作を停止します)。 )。PHP 経由のソケット サーバーはお勧めしません。C++ (QT、Berkeley) を使用したソケット サーバー、または Java ソケット サーバーの詳細を参照してください。

HTML5 Websocket サーバーについて話しているとき、それは「通常の」ソケット サーバーのプログラミングとは異なります (HTML5 Websocket サーバーのプログラミングに役立つ PHP 用のライブラリがたくさんあります)。

https://github.com/Flynsarmy/PHPWebSocket-Chat

そのリンクでは、チャットの例を見つけることができます。class.PHPWebSocket.php というファイルがあり、これを server.php に含め、そのライブラリを使用して HTML5 Websocket サーバーを作成します。例を見て、それがどのように機能するか、class.PHPWebSocket.php の使用方法を読んでください (例の中の server.php ファイルを見てください)。

終了したらサーバーを実行します。

次に、次のようにします。

// ...
var host = "ws://IP.OF.THE.SERVER:port";
socket = new WebSocket(host);
// ...

ソケット サーバー、HTML5 Websockets の詳細を読み、その class.PHPWebSocket.php ユーティリティを見てください。幸運であれ友よ。

于 2012-10-31T15:37:00.130 に答える