Socket. emit() Emits once and Socket.on() firing twice, why

Hi am using ion-infinite scroll like below

<ion-infinite-scroll  (ionInfinite)="loadData($event)"  position="bottom" 
    style="height: 0; min-height: 0;">
      <ion-infinite-scroll-content>
      </ion-infinite-scroll-content>
    </ion-infinite-scroll>

So loadData() calls emit like below

loadData(){
this.socket.emit('old-chats', {  username: userID ,page_no:pNo});
let observable = new Observable(observer => {
        this.socket.on('old-chats', (data) => {          
          observer.next(data);
                 });       
      
      })
}

But here emit is calling once but socket.on(‘old-chats’,…etc) is firing twice. if My page_no is 0–it is firing once
If my page_no is 1 it is firing twice if my page no two it is firing 3 times, but it emits only once when am calling this method. server-side also checked, log is printing only once.

Please help me.