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