2016-07-27 11 views
0

私はnodejsを使ってwebsocketへの接続をリクエストするjavascriptとのインターフェースを持っています。 websocketは、生成するリアルタイムデータをインターフェイスに頻繁に送信します。nodejs websocketページ分割

インターフェイスのページ番号を決める最も良い方法またはベストプラクティスは何ですか。

私はそうではないように私はサーバーのプッシュインターフェイスのすべてのデータを追加し、データはwebsocketを通じて1つずつ送信されるので、ログのようなものです。

このコード

connection.onmessage = function (message) { 
    console.log(message.data); 
    //var json = JSON.parse(message.data.text); 
    content.prepend('<p><span style="color:red"></span> @ '+ message.data + '</p>'); 
    console.log(message.data.text);  
}; 

このための任意の基準のいくつかの例? 悪い英語を歓迎します。

答えて

1

この例では、ページングに関する要求された情報だけがさらに進んでいます。

  • クライアント側では、listRequest_Messageを設定し、メッセージをサーバーのソケットイベントに渡します。 SessionIDは、どのユーザーに応答するかを知るためにのみ使用されます。 UseIndexStartが現在の最小レコードで、UseIndexEndが現在の最大レコードです。

    listRequest_Message = [[SessionID], [UseIndexStart], [UseIndexEnd]] 
    
  • の例では、ページ

    あたり21のレコードの
    //Page Back 
    var UseIndexStart = StartIndex - 21 
    var UseIndexEnd = UseIndexStart + 22 
    
    //Page Forward 
    var UseIndexStart = parseInt(StartIndex) + 21; 
    var UseIndexEnd = UseIndexStart + 22; 
    

サーバーアプリケーション

  • 変更インデックス間の記録で応答するレスポンスを返します。
  • クライアントが呼び出すソケットイベントが動的であるが、私はJSONオブジェクトが解析されてlistRequest_news
  • と呼ばれる以下のページングと1の映画、テレビ番組、および一般的なメディアのリストを含むテキストファイルで用意しました。

コード:

socket.on('listRequest_news', function(msg, body){ 
for(var i = 0; i < mediaObj.length; i++){ 
    var thisobj = mediaObj[i]; 

    var JSONmsg = JSON.parse(msg[0]); 
    var ClientIndex = clientkeyIndex.indexOf(JSONmsg); 

    var startindex = msg[1]; 
    var endindex = msg[2]; 

    if (i > startindex && i < endindex) 
    { 
     clientID = parseInt(ClientIndex); 
     client[clientID].emit('list_RequestGenericMedia', thisobj); 
    } 

    clientID = parseInt(ClientIndex); 
    client[clientID].emit('list_RequestGenericMedia', thisobj); 

} 
}); 

クライアント側

  • ストア選択されたレコードのためのStartIndexEndIndex
  • 前へ]ボタンと[次へ]ボタン
  • にそれらの値を添付210

コード:

$("#listviewcontrolller_prev").on("click", "", function(event){ 

var selectedOption = localStorage.getItem('selectedOption') 

var StartIndex = $("#prevpage").text(); 
var EndIndex = $("#nextpage").text(); 

var UseIndexStart = StartIndex - 21 
var UseIndexEnd = UseIndexStart + 22 

$("#prevpage").text(UseIndexStart); 
$("#nextpage").text(UseIndexEnd); 

var SessionID = localStorage.getItem('SocketID') 
var listRequest_Message = [[SessionID], [UseIndexStart], [UseIndexEnd]]; 

$("#newsOutPut").empty(); 
socket.emit(selectedOption, listRequest_Message); 
}); 

$("#listviewcontrolller_next").on("click", "", function(event){ 

var selectedOption = localStorage.getItem('selectedOption'); 

var StartIndex = $("#prevpage").text(); 
var EndIndex = $("#nextpage").text(); 

var UseIndexStart = parseInt(StartIndex) + 21; 
var UseIndexEnd = UseIndexStart + 22; 

$("#prevpage").text(UseIndexStart); 
$("#nextpage").text(UseIndexEnd); 

var SessionID = localStorage.getItem('SocketID') 
var listRequest_Message = [[SessionID], [UseIndexStart], [UseIndexEnd]]; 

$("#newsOutPut").empty(); 
socket.emit(selectedOption, listRequest_Message); 

}); 
+0

[OK]をので、私は、実装を終えました。 –

+0

Downvoteが削除されました。 –