无法在React-Native客户端中使用Webflux流响应

时间:2018-06-30 05:57:57

标签: react-native xmlhttprequest spring-webflux

我有一个在netty服务器上运行的Spring 5 webflux上构建的反应式流api,其语法如下-

@RequestMapping(path = "/customer/messages/stream", method = RequestMethod.POST, produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
public Flux<Messages> fetchAllMessagesForCustomer(@RequestBody CustomerRequest)

现在可以从我的本机应用程序中使用它了,我尝试使用fetch Api,但是由于react-native issue而无法使用。所以我尝试使用旧的xhr

xhr.onreadystatechange = function() {
  console.log("state change.. state: "+ xhr.readyState);

  if(xhr.readyState == 3) {
    var newData = xhr.response.substr(xhr.seenBytes);
    console.log("newData", newData);
    xhr.seenBytes = xhr.responseText.length;
  }
};

这在某种程度上有效,但是具有以下问题

  1. 响应消耗与发布流不同步,大多数情况下,多个流合并并抛出给客户端。
  2. xhr.responseText本质上会附加所有流,并保持增长,这似乎是 anti-pattern ,因为整个想法是将巨大的响应分解为较小的块并单独使用。< / li>

在react-native中是否有其他好的方法来处理流式响应?欢迎提出建议。

0 个答案:

没有答案