我正在开发一个具有用Java编写的桌面客户端的Web应用程序。我正在使用WebSockets在NodeJS服务器和Web客户端之间进行通信。
我正在尝试决定是使用WebSocket还是普通的TCP套接字在NodeJS服务器和桌面客户端之间进行通信。
据我了解,使用WebSocket会更容易,但重量也会更轻。
如何做出这个决定?
答案 0 :(得分:5)
这取决于您的确切用例:
因此,如果必须使用防火墙和代理集成到现有基础架构中,那么WebSockets可能是更好的选择。如果您的应用程序性能很高并且需要每一点带宽,处理器时间和最低(初始)延迟,那么普通套接字就更好了。
除了延迟确实是一个问题(如实时音频),你最好不要使用任何基于TCP的协议,如TCP套接字或WebSockets。在这种情况下,最好使用UDP并处理应用程序中潜在的数据包丢失,重新排序和重复。
答案 1 :(得分:1)
对于您在桌面客户端中实施的任何技术,是否有适当的WebSocket库? The websocket protocol并非微不足道,而且这是一项尚未得到普遍支持的新技术。当您必须使用纯TCP / IP套接字从头开始实现WebSocket时,您可以计划花费几天时间,直到您的基本协议实现正常工作,并且可以开始在其上实现您自己的协议(去过那里,完成了,扔了一个图书馆可用的时刻就比我自己的实施更好了。)
但是如果您可以为桌面客户端找到Websocket实现,那么通过让网站和桌面客户端以相同的方式与node.js后端通信,您可以在服务器端节省一些工作和复杂性。