2017-02-09 7 views
2

socketclusterを使用してリアルタイムアプリを構築することを検討しています。ドキュメントは非常にはっきりしていますが、私はをオンデマンドでプログラムで作成する方法を見つけることができませんでしたsocketclusterでチャネルをプログラムで作成する方法は?

私の必要性は次のとおりです。ユーザーとして、すぐにサーバー上で稼働するチャネルを作成するREST APIを呼びたいと思います。例えば

、クライアント側から呼び出す:JSON本体{ "channel": "myChannel}POST https://<myServer>/api/channelsは、サーバー上のmyChannelチャネルを作成することになり、私のクライアント側のコードは、(サーバの応答を受信した後)直接サブスクライブすることができるだろう:

var myChannel = socket.subscribe('myChannel'); 
myChannel.publish('myChannel', 'I am here !'); 
myChannel.watch(function (data) { 
    console.log('received data from myChannel:', data); 
}); 

私は、この新しく作成されたチャネルがmiddlewares are defined at server level(wsServer.addMiddleware(wsServer.MIDDLEWARE_SUBSCRIBE, ...)

として私の許可ミドルウェアを使用することを想定あなたの助けのおかげでたくさん、

Pierre

答えて

2

SocketClusterを使用すると、チャンネルが自動的に作成され、破棄されるため、ライフサイクルを管理する必要はありません。チャネルは、(チャネル名に基づいて)サブスクライブされているクライアントが少なくとも1人いる場合、バックエンドに作成され、それらのクライアントがすべて切断またはアンサブスクライブされると自動的に破棄されます。 SCも障害の原因となります。インターネット接続が予期せず失われた場合

SCは、オンザフライで多数のユニークなチャネルを効率よく作成および破棄するように設計されています。 1人のユーザーに数百のユニークなチャンネルを割り当てることができます(合計で数千から数百万のユニークチャンネル)。アイドル状態で、各チャネルのメモリ占有量が小さい場合、チャネルはCPUをまったく消費しません。

SCのチャネルはメッセージキューではありません(RabbitMQ、NSQ、Kafka、Stomp ...のものとは異なります)。 SCは永続キューにメッセージを格納しません(独自の永続性ロジックでSCを拡張することはできますが)。

関連する問題