スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

プライベートIP化でもiRemote!

iRemote
iRemoteはケータイからアクセスさせる関係でドメインが必要で、またドメインを使うにはグローバルIPが必要、とかなり導入には厳しい条件があります。

ワタシの住むレオパレスもプライベートIPだけしか割り当てられず、自分で作ったせっかくのiRemoteもここでは使用することができませんでした。。。大学にいる時間の方が長いのでできればリモートしたい。これはiRemoteを作り始めたときから思っていたことでした。一回別回線を引くことすら考えましたが。。。


そこでプライベートIPの環境でもiRemoteが使えるようにしてみた!

グローバルIPを持つ人のPC上にサーバーをたて、ドメインを取得してもらい、そこに自家製のiRemoteHubというiRemote専用の中継サーバーをたてる。またプライベートIP環境のPCに中継専用iRemoteServerをたて、iRemoteHubとの回線を確立する。あとはiRemoteHubにケータイからアクセスするとデータはすべてプライベートIP環境のPCに転送でき、これでiRemoteを使用可能になる、というもの。

友達に多少迷惑かかりますが、OKを貰えばほぼどんな環境下でもiRemoteを使用することができるようになります。
複数箇所にPCを持っている人なら一箇所にiRemoteHubをたてさせすれば、どこのPCでもリモート可能になりそう。


ワタシもついにレオパレスでiRemoteを使用できるようになりました。これでデバッグできる。。
ただし通常のiRemoteは試せないままなので、結局何かしらかデバッグできないですけど。



Twitterでわーわーいってましたが、これにいろいろ苦労がありまして。
まずはじめに考えていた方法は既存のiRemoteをそのまま使う方法でした。
中継サーバーをたてるのは同様ですが、操作する方のPCでも中継サーバーをたて、操作する側のサーバーは最後に通信先にローカルを指定し、iRemoteと通信する仕組みでした。
各サーバーもとってもシンプルでソケット通信によりデータをそのまま受け渡しするのみ。
ただしこれだとどういうわけか中継サーバーからケータイに送る際にうまくいきませんでした。
単純なソケット通信による転送ではどうもケータイにデータを送れないみたい。
ケータイではサーバーから切断されたと出てしまう。

そこでiRemoteでは問題なくケータイと通信できていたことに注目して、中継サーバーも同様の手法でケータイと通信させれば問題ないだろうという結論。しかしHttpListnerで接続した場合、すべてのデータをそのままソケットで流す方法がわからないため、iRemoteサーバー本体にも手をいれることに。中継サーバーとiRemoteサーバーはソケット通信をするのは変わらないけど、HTTPのデータをそのまま流すのではなく、実際に使用するコード部分のみを転送するようにし、iRemoteの改変を一部にとどめ、この仕組を完成させました。


知識不足から結構ブサイクな仕組みだけど、まぁできたからいいや。
よかったよかった。

コメントの投稿

非公開コメント

Go To 物置。
プロフィール

書いてる人:つん

まったりのんびり。書いてる人の息抜きブログです。

多分連絡先↓
metal_tsun@yahoo.co.jp

カテゴリー
リンク
月別アーカイブ
バロメーター
Java歴:2005年2月から今まで。
3DCG歴:2005年8月から数年。
C歴:2006年4月から今まで。
VB歴:2007年3月からちょっと。
Delphi歴:2007年3月からちょっと。
PIC歴:2007年5月から数年。
イラスト歴:2007年12月から今まで。
DTM歴2008年2月からちょっと。
PHP歴2008年4月からちょっと。
C++歴2008年4月から今まで。
C#歴2009年1月から今まで。
Objective-C歴2009年4月から今まで。
CSS歴2012年5月から今まで。

ブログ開始日2005/10/11


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。