1

私は持っています:

  1. PHPソケットサーバー

  2. サーバーおよびデータベースとの通信を処理するPHPページ

  3. クライアントの.phpページ。javascript/canvasを使用してゲームを表示および操作します。

私が欲しいのは、ユーザーがサーバーへのソケット接続を開始するPHPページを使用して接続および認証することです。そのソケットからの情報に基づいて、クライアントのphpページにデータをロードするためにいくつかのチャット情報とイベントがトリガーされる場合があります。

これを処理する正しい方法は何ですか。私が以前にajaxを使用したすべてのインスタンスで、サーバーではなくユーザーがイベントをトリガーし、javascriptがphpページの応答を待ちます。

phpソケットのどのphpコードで、canvas要素にメッセージを送信できますか?

上記はおそらくあまり明るくないので、ここに例があります:

IE:PHPはソケット接続を読み取ります{"name":"msg","from":"user1","time":12345,"msg","hello world"}

この時点で、PHPは何をしますか?**だから...

クライアントにはdivがあります"id='Incoming'"

次のJavaScriptを起動したい:

function handleMessage(msgObj) {
  var cText = document.getElementById("Incoming").innerHTML;
  cText += "(" + msgObj.time + ")" + msgObj.from + " says: " + msgObj.msg +"<br/>";
  document.getElementById("Incoming").innerHTML = cText;
}

クライアントのWebページがどのようにphpソケットに応答するのかを理解しようとしていると思います...

これは可能ですか、それともフラッシュ、Javaなどでクライアントを作成する必要がありますか?

4

2 に答える 2

1

送信するデータがある場合 (たとえば、ユーザーがボタンを送信した場合)、通常はイベント ハンドラーを介して、クライアントからサーバーにデータを送信します。Websocket は、サーバーからデータを受信したときにもイベントを発生させます (socket.onmessage)。シンプル。

ws.onmessage=function (evt) { handleMessage(evt.data); };

(または、handleMessage 関数本体を変更して、msgObj.data をテキスト値として使用するようにします)

php ソケットのどの php コードを使用すると、キャンバス要素にメッセージを送信できますか?

どの websocket 実装を使用していますか? それらはすべて異なる API を持っています (注意: websocket はネットワーク ソケットと同じものではありません)。

于 2012-06-13T15:24:26.873 に答える
0

コメットを使用する必要があります:
http://en.wikipedia.org/wiki/Comet_ (プログラミング)

AJAXははるかに優れており、非同期でもあります

http://www.ape-project.org/
http://www.stream-hub.com/
...

http://cometdaily.com/maturity.html

または HTML5 WebSocket を使用する

于 2012-06-13T14:49:54.363 に答える