How to push data from server to flutter app(无请求地从服务器向客户端发送数据)

How to push data from server to flutter app (send data from server to client without request)

我有一个 flutter 应用程序,它包括聊天之类的东西。

我想将消息从服​​务器(在我的例子中是 ASP MVC API)发送到我的应用程序,所以我每 300(毫秒)检查我的 API, 虽然这没有意义;那么从服务器向我的应用程序发送数据的最佳方式是什么?

同时,我无法使用 firebase(在叙利亚)

我确定这是一个重复的问题,但我没有在任何地方找到我的答案

可以使用 SignalR,它允许您通过从服务器调用客户端上的函数并传递其参数来将数据从服务器推送到客户端

这里有一些例子:

服务器代码:

public async void sendMessageToServer(string message, string sender){
    await Clients.All.SendAsync("getMessageFromServer",message,sender);
}

客户端代码(flutter):

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]);
}