SSブログ

P2Pのアプリを作ってみたいが [プログラミング]

peer-to-peerのアプリケーションを作ってみたいと思ったことは何回かあったが、結局相手を認識させるにはサーバ的な仕組みが必要なんだよなぁと思って諦めていた。というか、全く赤の他人と接続するのってなんか気持ち悪いし、そもそもサーバを立てる必要がないのがP2Pの良さなんだし、それをやらないで不特定多数と繋がる感覚がビッチっぽくてヤダw。

なんて言ってるとなんもできないので、自分を晒す方法を考えてみる。要するに自分のIPとかポートを教えればいいのだから、メールとかでいいんじゃないかと思った。というか、伝える他の方法はないことはないんだけど、流行り廃りがあるのだろうし、そもそもそういうアプリの中に機能が含まれているのが本来的ではあるのだ。

幸いGolangにはWebサーバを作る方法が容易なので、クライアントに示す画面もゲストに示す画面も、ブラウザ経由でできるというメリットがありそうだ。というか、今更OSネイティブのGUIに固執する必要もないので、HTML経由でどちらもやろう。

Webサーバ自体がGoRoutineを使うことが多いと思うんだけど、クライアントとゲスト間のやりとりもChannelでやれればいいなと思ったり。そこいら(特にチャネル)は実際に使ったことがないので、作っていくのと同時に学んでいければいいかな。

あとはGoでWebサーバでAjax的なHTML5周りのことができるようになれればいいかなと。そうすれば、なんとかアプリらしいことはできるだろう。立ち上げる側のUIはCUIでもいいと思ったが、それでは設定がテキストで書かないといけないとか、書き方がまずいと転ぶとかいろいろなことが考えられるので、GUIで用意した方が最終的にはいいかなと。YAMLかJSONか何かで保存すればいいか…。

メールで送るってことはSMTPをGolangで使えないといけないな。
https://golang.org/pkg/net/smtp/
標準で用意されていたのでこれは問題ないかな。Golangはいろいろ面倒がなくて良い。

なんか先が見えてきたのでインプリしてみる。実用になるかどうかはそれほど考えてない。使えるようになればいいと思うけど、そうなるとセキュリティ云々も考えないといけなくなるしなぁ。まぁ作ってからどうするか考えよう。


《後記》
あとあとルーター越え対応という面倒なことがあることが発覚。それらは後で書きます。

コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0