SockJS是否在支持websockets的浏览器上模拟websockets?

Rai*_*985 2 javascript websocket sockjs

即使在支持websocket的浏览器上,SockJS是否会模拟websockets?

我正在尝试使用websocket和RabbitMQ在Web上发送和接收消息.RabbitMQ提供了一个rabbitmq-web-stomp插件,它使用Sockjs桥接websocket和RabbitMQ STOMP插件.

但是SockJS说这是一个websocket模拟器.所以我想询问它是否会在支持websockets的浏览器上模拟websocket.

Bog*_*dan 5

来自SockJS javascript库(强调我的):

SockJS是一个浏览器JavaScript库,提供类似WebSocket的对象.SockJS为您提供了一个连贯的跨浏览器Javascript API,可在浏览器和Web服务器之间创建低延迟,全双工,跨域通信通道.

在引擎盖下,SockJS首先尝试使用本机WebSockets.如果失败,它可以使用各种特定于浏览器的传输协议,并通过类似WebSocket的抽象来呈现它们.

SockJS公开了一个类似websocket的API,使你的javascript应用程序认为你总是有一个Web套接字,即使你没有.编写应用程序时只需考虑一个传输更容易,如果遗漏则让其他东西模仿它.您的应用程序代码更简单.

SockJS将处理后备.它将尝试使用支持的第一种通信方式.

[
 'websocket',
 'xdr-streaming',
 'xhr-streaming',
 'iframe-eventsource',
 'iframe-htmlfile',
 'xdr-polling',
 'xhr-polling',
 'iframe-xhr-polling',
 'jsonp-polling'
]
Run Code Online (Sandbox Code Playgroud)

请注意Web套接字是第一个.如果您的浏览器支持Web套接字,SockJS将使用它.