我目前正在尝试编写一个使用websockets的小型Web应用程序。该应用程序正在对所有连接的客户端进行广泛的讨论。只要Tomcat容器在与端口80不同的端口上运行,这种方法就可以正常工作。
对于这种情况,请考虑Web应用程序始终广播消息。
工作行为如下(即在与80不同的端口上运行):
一旦我将其配置为在端口80上运行,就会发现以下行为:
控制台日志:
Event data: {"aktuell":50,"total":788,"msg":"Indexiere Artikel"} at Mon Mar 03 2014 14:24:22 GMT+0100
Event data: {"aktuell":55,"total":788,"msg":"Indexiere Artikel"} at Mon Mar 03 2014 14:24:22 GMT+0100
Event data: {"aktuell":60,"total":788,"msg":"Indexiere Artikel"} at Mon Mar 03 2014 14:24:22 GMT+0100
Event data: {"aktuell":65,"total":788,"msg":"Indexiere Artikel"} at Mon Mar 03 2014 14:24:22 GMT+0100
Event data: {"aktuell":70,"total":788,"msg":"Indexiere Artikel"} at Mon Mar 03 2014 14:24:22 GMT+0100
Event data: {"aktuell":75,"total":788,"msg":"Indexiere Artikel"} at Mon Mar 03 2014 14:24:22 GMT+0100
Event data: {"aktuell":80,"total":788,"msg":"Indexiere Artikel"} at Mon Mar 03 2014 14:24:22 GMT+0100
Event data: {"aktuell":85,"total":788,"msg":"Indexiere Artikel"} at Mon Mar 03 2014 14:24:22 GMT+0100
Event data: {"aktuell":90,"total":788,"msg":"Indexiere Artikel"} at Mon Mar 03 2014 14:24:22 GMT+0100
Event data: {"aktuell":95,"total":784{"aktuell":50,"total":788, at Mon Mar 03 2014 14:24:22 GMT+0100
使用Tomcat 7.0.42,7.0.52和Tomcat 8.0.3显示此行为。对于客户端IE 10,已经使用了Firefox 21和Chrome 33。
在我看来,websockets的内容以某种方式被缓冲到大约510字节(在将调试消息仅剥离到消息内容时观察到)。即使我更改了JSON消息结构,它也总共有510个字节。
使用端口80时,我遗漏了哪些不同之处?
就像附加信息一样,在服务器端我使用
session.getBasicRemote().sendText(message)
发送消息,在客户端使用
ws = new WebSocket(url); // Open connection
ws.onmessage = function(event) {
console.log(event.data); // Stripped down version
}
处理任何传入的事件。