直接接続していないクライアント間でのメッセージやりとり。

P2Pを利用している状態で直接接続していないプレーヤー同士でメッセージのやりとりができるか確認してみました。

うちのネット接続の場合、ポートフォワードを利用している状況でも、内部からglobalIPアドレスにて接続できなくなっています。
よって、PC上で2つFlashを立ち上げた状態で通信ができないことを確認してから、VPNをつかった外部PC上のFlashを経由したら動作することを確認できれば
要件をみたしたことになります。
■次の図のような、内部同士の接続は、不可能ですが・・・
■次の図のような、外部のプレーヤーをはさめば、動作が可能である・・・

結論からいうと、メッセージやりとりもNetStreamの動画データやりとりも可能でした。

ではまずメッセージのやりとりから・・・

プログラムは前回の検証のものとほぼ同等です。
/**
		 * netGroupを作成する。
		 */
		private function setupGroup():void {
			var groupSpec:GroupSpecifier = new GroupSpecifier("akasatana");
			groupSpec.serverChannelEnabled = true;
			groupSpec.postingEnabled = true;
			_ng = new NetGroup(_nc, groupSpec.groupspecWithAuthorizations());
			log.info(groupSpec.groupspecWithAuthorizations());
			_ng.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
		}
		/**
		 * テスト用、ボタンクリックで動作させます。
		 */
		private var count:int = 0;
		public function test(id:String):void {
			log.info("クリックイベント");
			var netGroupMessage:Object = new Object;
			log.info(_nc.nearID);
			netGroupMessage.sender = _nc.nearID;
			netGroupMessage.user = "aiueo";
			netGroupMessage.text = "kakikukeko";
			netGroupMessage.sequence = ++ count;
			_ng.post(netGroupMessage);
			log.info("クリックイベント送信完了?");
		}
 
postingEnabledを有効にした状態でNetGroupに接続して、好きなタイミングでNetGroup宛にデータをpostする。
これだけです。

この状態で動作を確認すると、別のPC上のプレーヤーをはさむと、MessageのNotifyイベントがとんできていました。

2:直接接続していないクライアントFlash同士のメッセージのやりとりができればうれしい。

これは、やりとりが可能であるということになります。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年02月06日 15:58
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル