我有一个使用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 制作聊天应用程序,但你稍微改变了它以解决你的问题。