我编写了使用WebSockets的最简单的应用程序。我的后端是GlassFish 4 build 89,我的前端是一个JavaFX 2.2应用程序客户端,它使用Tyrus 1.0 RC3,这是Java API for WebSockets的参考实现。 GlassFish也使用了Tyrus,虽然我一直懒得查找GlassFish build 89中包含的版本。
我对WebSocket API的测试来回发送了java.util.Date
,仅此而已。好吧,因为应该添加二进制对象。所以我写了自己的Decoder
来实现Decoder.Binary<Date>
。像往常一样,当我进入新的知识领域时,我喜欢记录每个方法调用。当我在控制台中查看时,我的Deocer.Binary<Date>#willDecode(ByteBuffer)
方法被同一个线程称为连续两次!如果真的是故意的,那么这种模式的用例是什么,增加了什么价值?但我认为这肯定是一个错误!我试图在一些GlassFish JIRA网站上提交错误/问题,但我没有在任何地方找到该按钮。