SockJS not working on IE9 (Websockets) - websocket

I am trying to setup an app working with SockJS over STOMP. However, it seems that the connection is not established. I do not have these issues with running all on Chrome, FF and so on.
Is there a way to support this for IE9? Or is it impossible to run websockets with sockjs on IE9? I saw some discussions where people were solving some issues with IE9 and sockjs but none providing a solution to my issue.
BR

The issue is resolved. SockJS emulates websockets on IE9 with no issue. The only thing that I had to do was to provide absolute path for creating the SockJS object.
Before:
var webSocket = new SockJS('topic/publish');
After:
var webSocket = new SockJS('http://localhost:8080/topic/publish');
Although it was working with Chrome and Firefox, there were issues to run it on IE9 that doesn't support websockets (out of the box).

Internet Explorer 9 does not support websockets http://caniuse.com/websockets.
You can use a polyfill based on Flash like https://github.com/gimite/web-socket-js

Related

Is websocket fallback still necessary nowadays?

In the past, websockets were not supported by all browsers and networks.
We were required to provide fallback solutions like HTTP Long Polling.
This situation appeared to change.
At least the browsers support looks great now: https://caniuse.com/#feat=websockets
I could not find any statistics about networks blocking websockets.
Do we have any data proving that there is still a justification for websocket fallback solutions?
Last year, I had an issue using Trello at work. While the page was initially shown, some changes were not reflecting on the page. I investigated using the Chrome debugger and found out that WebSockets connection was blocked (at least for that website).
After a few exchanges with IT, and some firewall black magic on their side, the issue was resolved and now Trello works fine.
So, in a few corporate environments, some WebSockets scenarios still need a fallback IMHO.

HTTP/2 not enabled in Chrome

I have a very strange problem.
I've tried to test HTTP/2 with Chrome using this URL : https://http2.akamai.com/demo
It tells me that the browser doesn't have HTTP/2 enabled but it's activated by default in last version of Chrome.
I've tested with Firefox and I have the same problem.
That's weird because it works with Chrome on Mobile ...
Does anyone have a clue ?
Thanks for your help
You are likely not connecting directly to the server and have either a proxy (if at a company computer) or anti-virus software which is downgrading your connection.
For the latter you can normally disable HTTPS traffic sniffing to avoid this. Of course that loses the protection of that traffic sniffing though some say the intercepting it does for HTTPS traffic sniffing causes more harm than it solves and a well patched computer should not need this.

Replace Faye with rails 4 server side events? Faye VS rails 4 streaming?

Currently im using private_pub + faye to have some basic streaming in Rails 4 project.
Would it be possible to replace faye and private_pub and use Rails 4 streaming ( server send events instead ?)
Im just pushing data to the client and the client does not communicate back to the server for anything so it seems like it should be possible.
How does faye web sockets compare to rails 4 inside internet exploder browser? Is it compatible?
To run Rails 4 streaming you need at least Chrome 9+, Firefox 6.0+, Opera 11+, Safari 5+, iOS Safari 4.0+, Blackberry, Opera Mobile, Chrome for Android or Firefox for Android. For older versions of IE, you can use EventSource polyfill but one of the downsides of SSEs is that they do not support bi-directional communication.
Faye should run in any browser capable of one of the following:
WebSockets (including the Firefox 6 and Chrome 14 implementations as of 0.6.4)
XMLHttpRequest
CORS
JSON-P
Basically, the biggest diference between two solution is that Faye is based on Bayeux protocol, this means that the Faye should works in all browsers and servers that implements Bayeux protocol (currently Faye server implements Node.js and Ruby)
I think is better continue with private_pub and Faye because both are more stable and you can find more information about them on the internet.
I hope this helps.

Does websockets works only with safari browser?

I trying to implement chat application using websockets.But the problem is , it is working only with safari 5. When am trying to execute in Firefox v14 or Chrome v21 ,am getting the error "Unsupported Websocket version: 13".I think these versions of Firefox and Chrome supports Websockets but i dont know to eliminate that error.
http://angelozerr.wordpress.com/2011/07/23/websockets_jetty_step1/ From this URL i wrote source code chat App.
Please help me.
Thanks in Advance.
Safari 5 supports only a legacy draft version of WebSocket. All of the current versions of the other browsers (including safari 6) support the final RFC 6455 version (which is version 13). It is likely that the websocket server that you are using only supports draft spec clients. You may need to upgrade to the latest version of your server software/library or otherwise double check that your websocket server supports RFC6455.

Is there any framework that supports Websocket and falls back to other methods when it is not supported on client's browser?

I was doing AJAX implementation and would like to use Websocket when the client web browser supports it. Is there any frameworks that supports Websocket but falls-back to other methods when it detects the client side doesn't support Websocket.
There is also Atmosphere
http://atmosphere.dev.java.net
which support both client and server.
Yes sort of see www.kaazing.org
Kaazing Gateway supports all major browsers (Firefox version 1.5 and higher, Internet Explorer version 5.5 and higher, Safari version 3.0 and higher, Opera version 9.5 and higher, and Google Chrome version 0.2 and higher).
Socket.io is designed for this.
http://socket.io/
It is purely javascript that tries several different transport methods including XHR long-polling, WebSocket and FlashSocket amongst others.
You could also use Nirvana from www.my-channels.com.
When WebSocket is not supported it will fall back to a Comet based approach transparently.
Of course, you could try using jWebSocket, it is a pure Java/JavaScript high speed bidirectional communication solution for the Web - secure, reliable and fast. jWebSocket is provided to you to create innovative HTML5 based streaming and communication applications on the web. HTML5 WebSockets will replace the existing XHR approaches as well as Comet services by a new flexible and ultra high speed bidirectional TCP socket communication technology. jWebSocket is an open source Java and JavaScript implementation of the HTML5 WebSocket protocol with a huge set of extensions. Some demos or examples can be seen for you in the website, you can visit it here: https://jwebsocket.org/

Resources