Ionic3 - 数据更新时的API和同步好友列表



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

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

我会使用套接字,你需要你的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.
        });
    }
}

这是一个非常基本的例子,说明你需要在Ionic方面做什么。关于 Devdactic 有一个很棒的教程,它教你如何使用基本的 NodeJS 服务器和 Ionic 制作聊天应用程序,但你稍微改变了它以解决你的问题。

最新更新