Ionic3 - 在数据更新时API和同步朋友列表

时间:2018-01-15 08:35:58

标签: api ionic-framework ionic3

我有一个使用API​​的Ionic3应用程序。 此API提供了一个好友列表。这是有效的,当我进入该视图时,我得到一个朋友列表。

但是当我仍然在朋友列表的视图中时,如果其他用户将我从他/她的朋友列表中删除,我怎么能更新该列表,这样我们就不再是朋友了。我可以每隔X秒进行一次轮询以更新列表,但是有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我会使用套接字,你需要你的API才能让某些设备知道有人删除了它们,Socket.IO上有一些很棒的文档。我有一个类似的问题,所以我创建了一个简单的NodeJS服务器,其中包含套接字的基本实现,然后在Ionic上实现了套接字。

首先:在您的Ionic项目中安装Socket.IO:npm install ng-socket-io --save

然后将这三行添加到app.module.ts

import { SocketIoModule, SocketIoConfig } from 'ng-socket-io';
const config: SocketIoConfig = { url: 'http://localhost:3001', options: {} };

@NgModule({
   /.../
 imports: [
     BrowserModule,
     IonicModule.forRoot(MyApp),
     SocketIoModule.forRoot(config)
 ],
  /.../
})

最后在friends-list.ts

import { Socket } from 'ng-socket-io'
export class FriendListPage { 
    constructor(public navCtrl: NavController, private socket: Socket) {
          this.socket.connect();
    }

    deleteFriend(friend) {
        // Friend deletion logic
        this.socket.emit('delete-friend', friend);
    }

    onFriendDeletion() {
        let observable = new Observable(observer => {
            this.socket.on('deletion', (data) => {
                observer.next(data);
            });
        })
        return observable;
    }

    refreshOnDelete() {
        this.onFriendDeletion().subscribe(data => {
            //Refresh friend list.
        });
    }
}

这是您在离子方面需要做的一个非常基本的例子。它有一个关于Devdactic的精彩教程,它教你如何使用基本的NodeJS服务器和Ionic创建一个聊天应用程序,但是为了解决你的问题,你可以稍微改一下它。