Understanding WebSockets versus Ajax/REST for Java EE Developers - Resin 4.0 Wiki 这是一份2012年的文档,从中我们可以了解到,Reader、PrintWriter,Resin都是单线程来处理的。在网上聊聊无几的文章里,都是在listener的onReadText方法里当收到某个连接发送的消息后,向已保存的连接列表中循环向客户端发送刚收到的消息,这个逻辑本身没问题。但在线上环境中,发现在稍微稍微有一点并发时PrintWriter就会报一个状态已关闭的错误,结合官方的文档,最后改为单线程操作,简单通过3个连接高频率发送一小段时间,没有复现这个错误。
说实话,这篇总结可能没有什么营养,以上的总结不保证准确,因为有关resin websocket的文章真的很少(比如从官方的文档中可以提到Resin的人员应该参与了不少jsr-356规范的制定,但最后为什么不能和sping进行无缝整合等等),再加上本人水品有限,如果有大牛请赐教