Ticket #136 (assigned defect)
SSE Transport no longer working in Opera 10.5
| Reported by: | bug | Owned by: | desmaj |
|---|---|---|---|
| Priority: | major | Milestone: | Orbited 0.7.11 |
| Component: | Orbited JavaScript | Version: | Orbited 0.7.10 |
| Keywords: | Opera 10.5 SSE | Cc: |
Description
In Opera 10.5, a TCPClient client can no longer receive messages while using Oribited 0.7.10. After testing, it seems that only the very first Orbited.CometTransports?.SSE.receivePayload() is ever called and the connection times out afterwards. This is the same as on opera's webchat application they give as a demo of SSE - which works on 10.1 and down:
The LongPoll? transport works fine in 10.5, though, and changing Oribted.js to have Opera 10.5 use that transport instead fixes the issue. This is what I did to detect 10.5, and have that and up use LongPoll? instead.
I changed line 75 from:
Orbited.util.browser = 'opera';
to:
if (opera.version() >= 10.5) Orbited.util.browser = 'opera10_5';
else Orbited.util.browser = 'opera';
Added on Line 1698:
Orbited.CometTransports.LongPoll.opera10_5 = 1.0;
And changed line 1173 from:
if (Orbited.util.browser == "opera") {
to:
if (Orbited.util.browser == "opera" || Orbited.util.browser == "opera10_5") {
I'm not sure if they changed the implementation in the most recent version. If so there isn't any documentation that I could find quickly. The server-event object still seems to work, just partially.