服务器发送事件中的数据限制
Data limits in server-sent events
我正在使用服务器发送的事件来对您的数据库执行查询。服务器使用 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,output
如果数据不是那么大,它工作正常:
http://jsbin.com/leginu/edit?html,output
我试过 Chrome,Safari 和 Firefox 都遇到了这个问题。关于如何解决这个问题的任何想法?这是服务器发送事件的限制吗,因为我在server-sent specification on W3上没有找到任何东西?
我几乎可以肯定您的问题出在服务器端,而不是浏览器或其 SSE 实现的问题。当我测试你的 curl 命令时,它在此时突然结束:
...null,null,null],["2016-08-30T14:08:03Z","MichMich",
(每个 运行 略有不同。)
不仅格式错误 JSON,而且没有双 LF。我的猜测是您的 Web 服务器进程崩溃了,或者您的后端脚本崩溃了。看看日志?或者,如果不是崩溃,则说明某个缓冲区已满。 (消息看起来刚好超过 313,000 字节,这并没有敲响警钟。)
您没有为服务器端语言或网络服务器标记任何内容,因此除此之外很难猜测。
我正在使用服务器发送的事件来对您的数据库执行查询。服务器使用 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,output
如果数据不是那么大,它工作正常:
http://jsbin.com/leginu/edit?html,output
我试过 Chrome,Safari 和 Firefox 都遇到了这个问题。关于如何解决这个问题的任何想法?这是服务器发送事件的限制吗,因为我在server-sent specification on W3上没有找到任何东西?
我几乎可以肯定您的问题出在服务器端,而不是浏览器或其 SSE 实现的问题。当我测试你的 curl 命令时,它在此时突然结束:
...null,null,null],["2016-08-30T14:08:03Z","MichMich",
(每个 运行 略有不同。)
不仅格式错误 JSON,而且没有双 LF。我的猜测是您的 Web 服务器进程崩溃了,或者您的后端脚本崩溃了。看看日志?或者,如果不是崩溃,则说明某个缓冲区已满。 (消息看起来刚好超过 313,000 字节,这并没有敲响警钟。)
您没有为服务器端语言或网络服务器标记任何内容,因此除此之外很难猜测。