我试图让示例webapp play-streaming-scala运行,在某些情况下我会遇到一种奇怪的行为。
我已经在某个主机的端口80上直接运行该应用,并且我使用Select BatchNo, Max(Id) As Id
From BatchTracing
Where ContentId = '7434'
Group By BatchNo
检查输出。
我期待的是这样的:
curl -iv --raw http://somehost/scala/eventSource/liveClock
等,并且随着时间的推移,清楚地看到这些块一个接一个地出现。
现在,在一些机器上,这很好用。在校园里的其他人,这失败了。 * Hostname was NOT found in DNS cache
* Trying 195.176.3.71...
* Connected to somehost (0.0.0.0) port 80 (#0)
> GET /scala/eventSource/liveClock HTTP/1.1
> User-Agent: curl/7.39.0
> Host: somehost
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Transfer-Encoding: chunked
Transfer-Encoding: chunked
< Content-Type: text/event-stream; charset=utf-8
Content-Type: text/event-stream; charset=utf-8
< Date: Wed, 18 Jan 2017 13:24:55 GMT
Date: Wed, 18 Jan 2017 13:24:55 GMT
<
10
data: 14 24 56
10
data: 14 24 56
10
data: 14 24 56
仅显示此内容然后停止:
curl
现在有趣的是:如果我杀死主机上的webapp,* Trying 195.176.3.71...
* Connected to somehost (0.0.0.0) port 80 (#0)
> GET /scala/eventSource/liveClock HTTP/1.1
> Host: somehost
> User-Agent: curl/7.43.0
> Accept: */*
>
突然“赶上”并将所有块一起吐出,关闭连接如下:
curl
可能导致这种行为的原因是什么?到底是怎么回事并拦截这些事件?有什么方法可以“强制冲洗”播放响应中的某些内容吗?
答案 0 :(得分:0)
事实证明OS X的家长控制系统自动设置本地“隐藏”代理不会正确转发分块响应,从而使基于服务器发送事件的系统无法运行。太可惜了。