【问题标题】:How to push data from server to flutter app (send data from server to client without request)如何将数据从服务器推送到 Flutter 应用程序(无需请求即可将数据从服务器发送到客户端)
【发布时间】:2021-05-27 01:29:17
【问题描述】:
我有一个 Flutter 应用,其中包含聊天等功能。
我想将消息从服务器(在我的例子中是 ASP MVC API)发送到我的应用程序,所以我每 300(毫秒)检查一次我的 API,
虽然没有意义;那么将数据从服务器发送到我的应用程序的最佳方法是什么?
与此同时,我无法使用 firebase(在叙利亚)
我确定这是一个重复的问题,但我没有在任何地方找到答案
【问题讨论】:
标签:
flutter
push-notification
messaging
【解决方案1】:
可以使用SignalR,它允许您通过从服务器调用客户端上的函数并传递其参数来将数据从服务器推送到客户端
这里有一些例子:
服务器代码:
public async void sendMessageToServer(string message, string sender){
await Clients.All.SendAsync("getMessageFromServer",message,sender);
}
客户端代码(颤振):
在initState你必须初始化你的服务器连接
HubConnection 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]);
}