我有一个使用API的Ionic3应用程序。 此API提供了一个好友列表。这是有效的,当我进入该视图时,我得到一个朋友列表。
但是当我仍然在朋友列表的视图中时,如果其他用户将我从他/她的朋友列表中删除,我怎么能更新该列表,这样我们就不再是朋友了。我可以每隔X秒进行一次轮询以更新列表,但是有更好的方法吗?
答案 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创建一个聊天应用程序,但是为了解决你的问题,你可以稍微改一下它。