我有一个 flutter 应用程序,它包含聊天之类的功能。
我想将消息从服务器(在我的例子中是 ASP MVC API)发送到我的应用程序,因此我每 300(毫秒)检查一次我的 API, 虽然这没有意义;那么将数据从服务器发送到我的应用程序的最佳方法是什么?
同时,我无法使用 firebase(在叙利亚)
我确信这是一个重复的问题,但我在任何地方都找不到答案
编辑:这种方法不适合消息应用程序,因为它不会在后台继续工作,也不适合推送通知。
原答案:
SignalR
,它允许您通过从服务器调用客户端上的函数并传递其参数来将数据从服务器推送到客户端
这是一些例子:
服务器代码:
public async void sendMessageToServer(string message, string sender){
// do something with data
}
public async void sendMessageToAllClients(string message, string sender){
await Clients.All.SendAsync("getMessageFromServer",message,sender);
}
客户端代码(颤振):
然后您必须初始化服务器连接,通常在
main
函数中。
signalr_netcore
包的示例:
hubConnection = HubConnectionBuilder().withUrl('serverurl').build();
await hubConnection.start();
hubConnection.on("getMessageFromServer", _newMessage);
然后发送和接收数据:
_newMessage(List<Object> args) async {
String message = args[0];
String sender = args[1];
}
void sendMessage(){
String message = 'Hello';
await hubConnection.invoke("sendMessageToServer", args: <Object>['MyName',message]);
}