2017-07-28 1 views
0

私はangularjs 1.5.5とcodeigniter 3.0を使用しています。最新の情報なしでangeljsチャットアプリケーションでメッセージを取得しています。

私はあるユーザから別のユーザにメッセージを送信するとうまく動作しますが、プロジェクトをアップロードした後、送信者にメッセージを送信したときに受信者がそのメッセージを受信したため正しく動作していません。

$scope.sendSenderMessage = function(bsid,srid,message) 

{ 
    //bsid is sender id while srid is receiver id 
    $http.post(url + 'c_chat/sendSenderMessageJson', { 
     'bsid' : bsid , 
     'srid' : srid , 
     'message' : message 

    }) 
    .success(function(data) 
    { 
     $scope.startChat(fksc_id); 

    }); 
    } 

After sending message through the following function i get the data: 

$scope.startChat = function(fksc_id=false) 
{ 

    if(fksc_id) 
    { 

     $http.get(url + 'c_chat/startChatJson/' + 
     fksc_id).success(function(data) 
     { 
     //console.log(data); 
     $scope.chats = data; 

     }); 
    } 
} 

そして、私の意見で:

<div ng-init="startChat()"> 
    <div ng-repeat="chat in chats" > 

     <div class="col-md-6"> 

     <p >{{chat.sender_message}}</p> 
     </div> 

     </div> 

chat.sender_messageは、送信者と受信者の両方のための本当のメッセージです。問題は、メッセージが送信されたとき、またはページが更新されたときだけ、受信者メッセージが表示されることです。

マイデータベーステーブルが

message_id  fksc_id  fkrc_id  sender_message 
+0

検索をお勧めします。 5秒ごとにサービスコールをしてください。 – kishor10d

答えて

0

のようなものです、あなたはスコープごとにn秒をリフレッシュするために、角タイムアウトを使用することができます -

var timer = $timeout(function refresh(){ 
    //your code to refresh scope 
    timer = $timeout(refresh, 100000); 
}, 100000); 

それとも、発光するようにソケットSocket.ioを使用することができますイベントを表示してスコープをリフレッシュしてください:

socket.on('receive:message', function (message) { 
    //your code to refresh scope 
    }); 

私はWebSocketをため Socket IO NPM LINK

関連する問題