メッセージ履歴付きの PubNub チャット
朗報: 各ユーザーに割り当てられた多数の異なるチャネルを持つチャット アプリを簡単に作成し、PubNub のリアルタイム ネットワーク - 高可用性グローバル分散 - ストレージ サービスを使用してメッセージ履歴を保存することもできます。このサービスを使用すると、過去のメッセージ履歴について、最寄りのデータ センターからモバイル/Web クライアント デバイスに直接メッセージを選択的にロードできます。また、Storage Retrieval API を使用してメッセージを独自のサーバーにロードすることもできます。これが次のチャット アプリでどのように機能するかを見てみましょう。
Chat with History JavaScript ソースコード
他のユーザーからメッセージを受信するには、自分のチャンネル名を購読してください。また、以前のチャットから履歴を読み込みます。USER_ID
<script src="https://cdn.pubnub.com/pubnub.min.js"></script>
<script>(function(){
// INIT
var channel = 'USER_ID-123456';
var pubnub = PUBNUB.init({
subscribe_key : 'demo',
publish_key : 'demo'
});
// CHAT MESSAGE RECEIVER
function chat(message) {
// process chat message here...
}
// LOAD HISTORICAL MESSAGES
pubnub.history({
channel : channel, // USER_ID Channel
limit : 50, // Load Last 50 Messages
callback : function(msgs) { pubnub.each( msgs[0], chat ) }
});
// PUBNUB REAL-TIME NETWORK HA-TCP STREAM CONNECTION
// FOR RECEIVING INCOMING CHAT MESSAGES
pubnub.subscribe({
channel : channel, // USER_ID Channel
connect : connect, // Connected - Ready to Receive Messages
callback : chat // Callback Processor
});
})();</script>
これが、モバイル/Web クライアント アプリのチャット アプリの基本です。グローバル プロバイダーとの間でメッセージを簡単にロード/保存できるようになりました。次に、PubNub REST インターフェイスを使用して、PHP からこれらのメッセージをサーバーにロードします。
PHP バックエンドで REST API を介して保存されたメッセージをロードする
REST インターフェイスを使用して、必要に応じて以前に投稿されたメッセージを PHP バックエンド サーバーから収集します。データは PubNub のグローバル リアルタイム ネットワークに保存され、信頼性と高い読み取り/書き込みパフォーマンスのためにメッセージが多くの地理的リージョンにレプリケートされるため、実際にはこの手順は必要ない場合があります。
PubNub Storage/History V2 REST API ドキュメント - https://gist.github.com/stephenlb/d53f4cc3a891c03b478e
REST リクエスト
http://pubsub.pubnub.com/v2/history/sub-key/demo/channel/my_channel?count=5
REST 応答
[["Pub1","Pub2","Pub3","Pub4","Pub5"],13406746729185766,13406746845892666]
PubNub PHP SDKを使用して、いくつかの複雑さを解消することもできます。PubNub PHP SDK はhttps://github.com/pubnub/phpで見つけることができ、次の例で履歴を読み込みます。
<?php
$pubnub = new Pubnub(
"demo", ## PUBLISH_KEY
"demo", ## SUBSCRIBE_KEY
"", ## SECRET_KEY
false ## SSL_ON?
);
$history_data = $pubnub->history(array(
'channel' => $channel,
'count' => 100,
'end' => "13466530169226760"
));
?>
PubNub のストレージ REST API の詳細
https://gist.github.com/stephenlb/d53f4cc3a891c03b478e - このガイドは、ストレージ REST API に関する追加の詳細に答えるのに役立ちます。
履歴を使用した完全な GUI チャット クライアントの詳細
以下は、開始に役立つグループ チャットです。Bootstrap CSS フレームワークを使用して記述されています - https://github.com/pubnub/real-time-stocks/#simple-embedded-chat-application