2014-07-05 48 views
2

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

我试图使用websocket和RabbitMQ在网络上发送和接收消息。 RabbitMQ提供了一个rabbitmq-web-stomp插件,它使用Sockjs桥接websocket和RabbitMQ STOMP插件。

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

回答

5

the SockJS javascript library(重点煤矿):

SockJS是一个浏览器JavaScript库,提供了一个的WebSocket状物体。 SockJS为您提供了一个连贯的,跨浏览器的JavaScript API,它在浏览器和Web服务器之间创建了一个低延迟,全双工,跨域的通信通道。

引擎盖下SockJS尝试首先使用本机WebSocket。如果失败了,它可以使用各种浏览器特定的传输协议,并通过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' 
] 

注意web套接字是第一个。如果您的浏览器支持网络套接字,SockJS将使用它。

+0

明白了。谢谢 – Rainman1985

相关问题