3

我正在使用服务器发送的事件来对您的数据库执行查询。服务器通过事件实时流式传输统计信息,stats当执行查询时,它发送result带有数据的事件并关闭连接。

您可以使用以下 curl 命令对其进行测试:

curl 'http://rakam-production-webapp-203653584.us-east-1.aws.getrakam.com/query/execute?read_key=l2drg09t1j04poki16q46nsa7qvjdjhsedcml0e9m8sd87h6olkevq8b7m3m6948&data=%7B%22query%22%3A%22SELECT%20*%20FROM%20collection.%5C%22pull_request%5C%22%22%2C%22limit%22%3A1000%7D' -H 'Accept: text/event-stream'

问题是数据超过几千字节,EventSource 不会触发result事件。

http://jsbin.com/jiteca/edit?html,输出

如果数据不是那么大,它可以正常工作:

http://jsbin.com/leginu/edit?html,输出

我尝试过 Chrome、Safari 和 Firefox,它们都遇到了这个问题。关于如何解决这个问题的任何想法?这是服务器发送事件的限制吗,因为我在 W3上的服务器发送规范上没有找到任何东西?

4

1 回答 1

1

我几乎可以肯定你的问题是服务器端的,而不是浏览器的问题,或者它们的 SSE 实现。当我测试您的 curl 命令时,它会在此时突然结束:

...null,null,null],["2016-08-30T14:08:03Z","MichMich",

(每次运行略有不同。)

不仅是格式错误的 JSON,而且没有双 LF。我的猜测是您的 Web 服务器进程已经崩溃,或者您的后端脚本已经崩溃。看看日志?或者如果不是崩溃,那么一些缓冲区已经填满。(该消息看起来刚刚超过 313,000 个字节,没有响起任何铃声。)

您没有为服务器端语言或 Web 服务器标记任何内容,因此很难猜测。

于 2016-09-27T19:38:01.087 回答