ラベル

2013年1月13日日曜日

php-web-socket+ie8+nadesikoを使う。 完結。

php-web-socket+ie8+nadesikoを使う。の3回目ですが此処までの不明点を
それなりに自己解決したので完結編とします。
今回もまた、自分のメモレベルでソースコードの不具合や認識間違いも
多々有ると思いますので、参考にされる方は自己責任でお願い致します。



これまでの問題点

1、php demo.php をコマンドプロンプトで実行したがechoの出力が出ない?

    自宅PCはOKですが職場のPCでphp CLIで「php demo.php」を実行すると
    echo出力が出ず、デバックが出来ません!
    調べた結果、自宅PCは phpのバージョンが5.3.8で職場は5.3.1でした。
    取り敢えず、職場もphpのバージョンを5.3.8に入れ替えました。
    何と!echo出力が正常に出る様になりました。
    5.3.1で不具合が有るのか原因は判りませんが、デバックが出来るのでOKとします。


2、「なでしこ」のWeb部品から接続完了やデータ受信のイベントを取得出来ない。

    これも悩みました。
    自分のスキルではTCPソケットとWebソケットの相互接続は無理と考え
    「なでしこ」のWeb部品を経由して「なでしこ」で作ったアプリとイントラの
    Webでリアル通信を考え、php-websocketまでの接続に目処が着いたのに
    「なでしこ」で接続完了やデータ受信を取得出来ませんでした。
    php-websocketのソースを見ながら、これにTCPのソケット通信を追加しようと
    考え、かなり好い加減(無茶?)な追加ですが、何とか動きました。

    websocket.protocol.phpとdemo.phpにコードを追加しました。


3、php-websocketにTCP接続を追加したが機種依存コードの文字化けが発生する。

    「なでしこ」からTCP接続はSJISでweb-socketからの接続がUTF8で
    mb_convert_encodingやiconvを試しましたが①等の変換がNGでした。
    たまたま古い参考書を読み直したら、jcode.phpsが載っていました。
    早速、TOMOさんのホームページからjcodeをダウンロードして試したら、
    希望どうりの変換結果です。(jcode_1.35a.zip を使わせて頂きました。)
    文字コードの変換問題は以前から合ってそのままなんですね。


上記の対応を行ったソースを添付しようとしましたが、このBloggerでは
画像の添付のみなのでGoogleのホームページを作ってそちらに添付しました。

ホームページは hiro-kenbun です。
ソースファイルは このページ に有ります。



以下に関連するスクリーンショットを添付します。

<<TCP接続の追加>>





<<jcodeでコード変換>>



<<demo.php実行中>>






以上

0 件のコメント:

コメントを投稿