2016-06-26 14 views
0

現在、私はソケットを初期化してイベントを設定するシングルトン(static-ish?)サービスを持っています。サービスは、ソケット情報を利用するコンポーネントのそれぞれに注入されます。Angular2 + Socket.IO実装のベストプラクティス

私の質問は以下のとおりです。

  • は、ベストプラクティスのようなこの音をしていますか?

  • あなたが見越して問題を起こすことはできますか?

  • 変更することができますか?

答えて

0

私は、角度の1.5.xで開発してきたので、私は私の答えはどのように適用わからないんだけど、多分あなたはそれから設計プリンシパルを取ることができ、そしてそれを適切に適用されますが、ここに行きます。

私がこれをやり遂げる方法についての私の最初の考えはこれです。ソケットを初期化するなどの処理を行うソケットサービスを設定し、イベントをバインドする2つのパブリック関数を持ち、イベントをバインド解除します。バインディングは、イベント名を取り、データのパラメータを持つ関数、そしておそらく後にイベントをバインド解除するにはIDを返し、このようになります。

var bindingId = SocketService.bind('socketEventName', function(eventData){ 
    console.log(eventData); 
}); 

、その後、あなたはこの

を行うことができますバインド解除します
SocketService.unbind(bindingId); 

この種のレイアウトでは、SocketServiceに他のサービスを含めることができ、SocketServiceにそのロジックをすべて持たせるのではなく、必要に応じて他のサービスが応答を処理できるようになります。