今日の最新のインターネット接続によって達成された信じられないほどの速度は、リアルタイムアプリケーションの急増を促進しました。これらは、ユーザーがすべての実用的な目的のために即時であるとユーザーが感じるのに十分な速さの時間枠内で機能するアプリケーションです。したがって、遅延は数秒以内、または数分の1秒以内である必要があります。
最近まで、リアルタイムアプリの開発は一種の苦痛であり、多大なエンジニアリング作業が必要でした。これは、あらゆる種類のリアルタイム機能を構築するには、クライアントとサーバーの間に双方向接続を確立してメッセージを送信する必要があるためです。 PubNubは、リアルタイムAPIとグローバルメッセージングインフラストラクチャを提供して、リアルタイムアプリのコーディングを簡素化します。リアルタイムデータストリーミングとデバイスシグナリングにパブリッシュ/サブスクライブモデルを利用して、任意のデバイスへの永続的なソケット接続を確立および維持し、データを1/4秒未満で世界中の視聴者にプッシュできるようにします。任意のチャネルにメッセージを公開でき、サブスクライブしているクライアントはそのチャネルに関連付けられたメッセージのみを受信します。メッセージペイロードには、数値、文字列、配列、オブジェクトなど、任意のJSONデータ型を含めることができます。
今日の記事では、PubNubコンソールを使用して挨拶関数を作成してテストします。
ウォークスルー
PubNubには、APIキーからデバッグ設定まで、プロジェクトとモジュールのすべてのコンポーネントを開発および管理するためのオンラインコンソールがあります。したがって、本日行うことはすべてPubNubサイトで行われます。
- アカウントを作成することから始めましょう。すでにGoogleアカウントをお持ちの場合は、それを使用して資格情報を提供できます。
- 管理コンソールに、デモプロジェクトがすでに作成されていることが表示されます。クリックして、コンソールでプロジェクトを開きます。
- そこに、デモキーセットが表示されます。次に、それをクリックして詳細にアクセスします。
- 画面下部の[アプリケーションアドオン]の下に、いくつかのオプションが表示されます。図1に示すように、PubNub関数を有効にします。
図1: PubNub関数の有効化 - [保存]ボタンが画面の左下隅に表示されます。クリックして変更を保存します。
- 次に、アプリモジュールを作成します。左側のメニューで、[PubNub関数]をクリックして[PubNub関数]画面を表示します(図2を参照)。
図2: PubNub関数画面 - [新しいモジュールの作成]ダイアログで、[新しいアプリ名を入力してください]フィールドに「あいさつ」と入力します。図3に示すように、[CreateNewModule]ボタンをクリックします。
図3: 新しいモジュールの作成ページの上部に「新しいモジュールが正常に作成されました」という通知が表示されます。
- 次に、関数をコーディングします。リアルタイムアプリのコンテキスト内で、関数はメッセージに対して実行されるロジックを配置する場所です。 [+作成]ボタンをクリックして、新しい関数を作成します。
- [New Function]ダイアログで、[Function name]に「DisplayGreeting」と入力し、[Functiontype]に[BeforePublish or Fire]を選択し、[Channelname]に「display_greeting」と入力します(図4を参照)。 )::
図4: 作成シーケンスの完了 - [作成]をクリックします。
あいさつモジュールの表示エディタが表示されます。基本的なスケルトンを使用して、エディタに挨拶機能を表示します。今のところ、リクエストをログに記録し、約束の解決策としてリクエストを返すだけです。 :
export default (request) => { const kvstore = require('kvstore'); const xhr = require('xhr'); // Log the request envelope passed console.log('request', request); // Return a promise when you're done return request.ok(); }
上記のコードの場合:
- リクエストパラメータは、PubNubメッセージエンベロープオブジェクトを保持します。
- 関数の本体は、いくつかのライブラリをインポートし、要求をログに記録し、promise解決として要求を返します。 (request.ok()を返すことは、Promise.resolve(request)を返すことと同じです。)
この関数は、メッセージがPubNubデータストリームネットワークに入るたびに実行されますが、そのタイプが「公開前」であるため、さらに複製されてサブスクライバーに配信される前に実行されます。
次に、関数コードを変更して、デフォルトの「Hello」メッセージに名前を追加します。
- 関数コードエディタで、console.log行を次のように置き換えます。
request.message.greeting += " world!";
- [保存]をクリックします。
- それでは、関数をテストしてみましょう。図5に示すように、[Test Payload]フィールドに次のJSONリテラルを入力します:
{ "greeting": "Hello" }
図5: メッセージ情報の表示 - [テストを保存]をクリックします。
- [公開]をクリックして、メッセージを「hello_greeting」チャネルに送信します。出力はテストコンソールに出力されます:
11:34:36 block: Deploying in regions: Eastern US, Western US, Asia, Central Europe. 11:34:38 block: Module is now globally deployed. 11:34:41 publish: { "greeting": "Hello world!" }
ご覧のとおり、挨拶には「Helloworld!」と表示されます。
ProductionDeveloperConsoleの使用
前の例から、組み込みのテストコンソールが便利であることがわかりますが、実稼働環境をより適切にエミュレートするために、代わりに実稼働開発者コンソールを使用したい場合があります。本番開発者コンソールを使用するには:
- PubNub開発者コンソールに移動します。
- 「チャネル」を「hello_greeting」に設定します。
- パブリッシュキーとサブスクライブキーをデモキーセットのキーに設定します。
- [登録]をクリックします。
- 今回[公開]ボタンをクリックすると、図6および7に示すコンテンツがクライアントに表示されるのと同じ本番出力が表示されます。
図6: あいさつを公開する
図7: 制作メッセージ
結論
PubNubには、関数以外にもたくさんの機能があります。また、ChatEngine、データストリームネットワーク、リアルタイムメッセージング、およびリアルタイム開発を目的とした他の多くのツールも提供します。そのサービスは完全に無料ではありませんが、おそらくほとんどの企業にとってコストに見合う価値があります。