我对这一切都是新手,但根据我的理解,websockets允许在浏览器之间双向传输信息。 Vert.x是一个允许异步I / O的库。 sockJS是一个JavaScript库,它试图使用websockets进行通信,否则会提供后备选项。
但是,如果我使用vert.x在Java中编写一些东西,我不太明白这些部分是如何组合在一起的。 vert.x实际上支持websockets吗?或者我需要vert.x和sockJS的组合来实现这一目标吗?
答案 0 :(得分:1)
HTTP(s)是一种无状态协议,这意味着一旦完成其工作,它将处于空闲状态,直到给出下一个作业。
让我们举一个聊天应用程序的例子,假设A正在使用HTTP协议与B聊天。 B已经发送了一条服务器中的消息,现在直到A刷新浏览器,B的消息才会出现。那是无国籍的行为。
来到套接字,这不是无状态的。套接字使用ws协议,该协议始终连接到服务器。以同样的例子,现在如果B发送消息,A的套接字将获取并显示给浏览器,而无需刷新。这就是套接字的工作原理。
要提供网页,您需要一台http服务器。与使用套接字类似,需要套接字服务器。这是由Vert.x提供的。因此Vert.x将启动套接字服务器,您的浏览器将使用clientside sock.js文件监听该服务器。