2015年6月27日土曜日

データを送信できない環境

実写でボクシングは、ネット対戦が終わるたびにスパーの結果をサーバに送信して、スパーログレベルランキングに反映させています。

スパーの結果を送信するのは、クライアント側(リングを作成したのがホスト側、リングをクリックしたのがクライアント側)のユーザーです。(タイトルマッチだと勝者が送信します)


少数ですが、データを送信できない環境のユーザーがいて、スパーログやレベルランキング、タイトルマッチの挑戦権が正しく反映されません。

そうすると、サーバにスパー結果が反映されず、様々な問題が発生してしまいます。


対策としてスパーの結果をホスト側のユーザーもサーバに送るようにしました。この場合、スパーログの日時の末尾に!マークが付きます。



対戦している両者ともにデータを送信できないユーザーの場合、サーバにスパー結果が届かないのでやはり様々な問題が発生してしまいます。

実ボクの運営としては、サーバがスパーの結果を受信できないので今以上の対策ができません。

データを送信できないユーザーがなぜ送信できないかについて、しっかり情報を集め、改善の方法を探っていきたいと思います。

データを送信できないユーザーの皆さんに色々と質問することがあると思いますが、人助けだと思ってご協力いただけると嬉しいです。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

考えられる原因の筆頭は、

  • ファイアーウォールにより実写.exeからの送信が遮断されている

です。

セキュリティソフト、またはWindowsに付属しているファイアーウォールを無効化して、データを送信できるか、確認してください。

無効化、もしくは実ボクの通信を遮断から許可にする方法として、以下のサイトが参考になるかもしれません。
Windowsファイアウォールの例外にアプリケーションを追加する方法


データ送信の確認方法

  1. クライアントとしてスパーをする。(bot戦でも可)
  2. スパーログの日時の欄を確認、末尾に!マークがなければ送信されています



(無題) 投稿者:k kyo 投稿日:2015年 9月30日(水)00時36分5秒

先程のタイトルマッチでゼファーさんが勝利したにもかかわらず、王者がこちら敗者のままになってました。改善お願いします



ゼファーさんとk-kyoさん 投稿者:サンドバック 投稿日:2015年10月 1日(木)21時50分13秒

ゼファーさんとk-kyoさんのタイトルマッチが正しくサーバに登録されていない件ですが、おとといのスパーログに以下のように送信(両者のうちどちらかが送信成功している!)されてきていて、タイトルマッチ側のCGIには送信が届いていないという状態です。

~ 2015年09月29日(火)スパーリング一覧 ~
123 12回戦 k-kyo vs ゼファー 8RKO(1分8秒) ゼファー   直接 23時30分13秒

送信不可ユーザー同士のスパーなので届くはずのないデータ…。

なぜ片方のCGIに届いたのか?

これが送信されてこない問題での何らかのヒントになるかもしれないので、サーバのログ、ふたつのCGIの差はなにか?など調査を行います。

ユーザの環境依存だと思っていましたが、それだけではなく、なんらかの条件がそろえばデータが送信されてくるという事実、この貴重なログを大事に調べたい…。

現状のログをこれまでのように手動で「ゼファーさん王者」に直すこともできるのですが、調査する際になるべく原型を見ながら作業したいという思いもあり、大変申し訳ありませんが、今回はCGIにより処理された現状のまま推移させようと思います。

なので、今後しばらくタイトルがどう移動したかなど、現状のサーバCGIの採決に委ねようと思います。


基本的には現状、ゼファーさん、k-kyoさん、DDさん同士のスパーは正しく登録されません。
これはいじわるではなくデータがサーバに届かないからです。
(サーバ側のセキュリティを切っても登録されない)

他のユーザーとのスパーが正しく登録されるのは、対戦相手が代わりに送信しているからです。(なので、レベルランキングの◎などが直近5戦までしか登録されない)

スパーをたくさんしてくれるユーザーばかりなので、この問題を解決できたら実ボクにとって大きな前進です。
今回の貴重なスパーログ登録の事実を糸口に、問題が解決できたら本当にうれしいです。


しばし調査に入りますが、皆さんはスパーを存分に楽しんでください!!!
(ゼファーさん、k-kyoさん、DDさん、辛い部分もあるかと思いますが、気楽に楽しんでください!)
(サーバのログ解析は地道で時間のかかる作業ですが、一歩一歩前進できる作業でもあります。)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

ただ、車検を自分でやる(20万前後の中古車への買い替えは断念)ので整備や修理に時間取られており、なんと本日10/1が結婚20周年の記念日だと当日に知らされて動揺?しているのと、まだ作業に取り掛かれていません。

実ボク本体も鼻血の出血率の取得や鼻血ランキングの実装などやりたいことがたくさんあります。(はっ!月初めだから月ピーの結果も!)

作業が遅い!と思わず、暖かい目で見守ってください!(遅いけど)



(無題) 投稿者:k kyo 投稿日:2015年10月 2日(金)04時09分57秒

説明有難うございます このままの状態で行くしかないんですね
ゼファーさんにはなんだか申し訳ないですが...



(無題) 投稿者:ゼファー 投稿日:2015年10月 2日(金)09時53分23秒

そのまま行く件、了解ですー。
お手数おかけしますが、引き続き調査の方
よろしくお願いしますー!
kさん、お気になさらずに~!
まあ、またいつでも取れますから^ ^



(無題) 投稿者:サンドバック 投稿日:2015年10月 2日(金)15時39分33秒

k-kyoさんの貴重なデータを解析して原因を探っていたら、デスさん来たのでスパー。
そしてすぐビョークさん来て二人のカウンター名手にボコボコにされましたが、ただでは終わらない!。

ビョークさん去る直前に(ビョークさんはプログラム関係の仕事だったな)と思い出し、「GETメソッドでURLの末尾にデータ付け加えると送信されない原因ってなにか思い浮かびますか?」と質問。

唐突に専門的な質問でしたが、「原因はわからないが、もう一つの送信方法であるPOSTでやってみては?」と。

なるほど、原因の究明より別の手段で試してみるか…と作戦変更。


ネット対戦を構築する際、GETかPOSTかで迷ったのですが、HSP言語でPOSTメソッドを使っている先人が見当たらず、簡単なGETを採用しました。

かつて逃げた道への再チャレンジとなります。この道を今度こそ本気で進んでみようと思います。

予定としては、本日を基礎研究にあて、明後日からテストを開始しようと思います。

POSTメソッドを実ボクに実装しても送信不可ユーザーの送信成功となるか、わかりません。

が、POSTメソッドによるシステムを実現できれば、GETよりも大きなデータを送信できるので、(GETメソッドで構築した)今よりもシンプルで安定したシステムを構築できる可能性もあります。

もうしばしお待ちください!
(深夜、調査作業を中断して、デスさんとスパーしてよかった!得るものがありました!)

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

追記…
作業の進捗です。

本日、HSP言語による実写.exe側からのPOST発信のプログラムを作業しました。
明後日からサーバでPOSTを受信するプログラムをperl言語で組んでみます。

送受信が一発でうまくいくといいなぁ…。
ま、ダメならうまくいくまで色々なパターンを試すまでです。どうにかなるでしょう!



(無題) 投稿者:サンドバック 投稿日:2015年10月 4日(日)18時31分36秒

本日朝から作業。
やるぞ!と決めて取り組むと燃えてきます。

私の並々ならぬ覚悟を感じたか、家族も勉強したり、ゲームしたり、それぞれの作業に没頭しています。
おかげでものすごく集中でき、濃い時間となりました!

サーバ機と作業機の椅子に交互に座ること何十回、結果としてHSPからPerlへPOSTメソッドを使った送受信に成功しました!

ここからは実ボクへの実装です。システムのデザインを頭の中で組み立て、プログラミングしていく…。

送信不可ユーザーだとPOST送信、他は従来のGET送信へと自動で振り分けるよう処理。
サーバでの受信は、POSTとGETのどっちがきても同じ変数へと代入するようプログラミング。

これでユーザーはなにも意識せず、POSTとGETが自然に共存できるはず!


近く送信不可ユーザーの方にPOSTメソッドで本当に送信できるのか、テストをお願いしようと思います。

もし失敗だったら、本日の作業はズコーッとオオコケなのですが、個人的にはPOSTは掲示板の書き込みに使われるメソッドなので、皆さん掲示板に書き込みできるのだから成功するはずだ!と楽観しています。

(明日仕事なので)明後日頃、テスト版を形にでき次第、スパ天で会った方に私からお声掛けします。お時間ありましたら、テスト版に差し替えていただき、テスト(私との対戦)にご協力いただけると助かります。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

本日、開発作業の節目節目で小さなテストをしようと思うと、必ずスパ天に誰かがいて、すぐに成果を確認できました。
対戦してくださった皆さんに感謝です!!!

ありがとうございました!

これから成功だったか、失敗だったかの調査を行います。



(無題) 投稿者:サンドバック 投稿日:2015年11月23日(月)19時35分23秒

結果として、送信不可ユーザーの方をPOST送信に変更できましたが、送信不可の状況を改善できませんでした。

残念ですが、GETとPOSTはどっちでもダメだった、という結果を得る事ができたのは大きな前進です。
セキュリティソフトやWindowsによる遮断の可能性が高くなったと言えます。
以下のリンクに記されている方法で遮断を解除できるかもしれません。

Windowsファイアウォールにて特定のアプリに許可を与える方法

セキュリティソフトの設定方法
フリーソフト作家のまるおさんが、送信不可を改善すべく各種セキュリティソフトの設定をかなり踏み込んで記しています。
何種類もあるセキュリティソフトの試用版を入れて、ひとつひとつ調べた労力を思うと頭が下がります。

ただし、当たり前ですが、実ボクのために書いてくれた内容ではありません。
内容は膨大なので、私のほうでこれから抽出したページを作成します。

送信不可ユーザの改善は実ボクここ数年の悲願です。努力は惜しみません!

追記
http://hspboxinggame.blogspot.jp/2015/12/blog-post_11.html
こちらのページに実ボクユーザー向けバージョンを作成しました。

ぜひご覧ください。