-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
safari ios 6.1.6 now gives "expects binary data" #78
Comments
Yes, I've had that too ... I have changed the way the messages are sent, it used to be JSON, now it is OSC-encoded binary data, so that might mean that some older browsers are not supported anymore. I have to look into it, and either reflect this in |
A simple fix for this would be to have 2 possibilities of sending messages. OSC blob as is done now + something else. Possibly JSON or plain text. When the message doesn't contain a blob, the other version (JSON?) is used by default. |
was just about to test the new commit (thanks) but the problem below occurred. it might be due to my new laptop and some missing dependency. in ~/rhizome/examples/base (master)
|
Ok thanks for finding this, I added a fix 725ad51 so this doesn't happen anymore. You might also try to delete the files with old data (by default |
Also, I don't know with which version you test, but all these fixes are not yet pushed to npm, so you need to install rhizome from the branch I you haven't done so, you can do it by running :
to uninstall the old version, then install the new version with :
|
still the same... |
damn ... I've never seen anything like that. Do you have any stack trace with the debugger? I've modified a bit the base example, adding slightly more infos to see if we can get something meaningful. Also I prevent the socket to connect if the client doesn't support the required features (which apparently I had forgotten to do before). Could you test with this example please ? Thanks a lot for your help :) |
now the websocket network error is gone and i see: |
damn ... I really need to get hold of one of these devices. That's the only way I can hope to fix this bug. |
it's not such an important bug. i can live with it. thanks for all your effort. |
Yes, I can live with it too, but it means that some devices won't work, without any feedback to the user that it is actually not working ... and that's not good. So I'll definitely come back to this. |
I believe this is also happening on iOS 7 as well. A friend's iPhone 5S behaves the exact same way connecting to my instance of Rhizome 0.7.0. |
Dammit! Can't find a device that would have the same problem! I have an iphone here, but it's iOS8 and works fine, and several android devices which all work ok ... So basically can't really debug. It's annoying cause I think it's a biggie. If one of you with the bug could look at it, that'd be awesome! |
Yes, I discovered that it's extremely hard to downgrade and iOS device now too... so you have to just find one in the wild. If I have time I'll try to debug with my friend's phone, but I'm not really sure how... haven't dug into websockets too much at a low level. |
The baseline of this bug is that the message arrives on the server side, but the server expects binary messages. Therefore I test whether a message is binary and if not, refuses it and throw an error : https://github.com/sebpiq/rhizome/blob/master/lib/websockets/Server.js#L222 basically, I'd need to figure out exactly what is not supported by the WebSocket, and in which condition does the message arrive in the other side. If the message arrives in a readable state, but the flag |
yes, i just confirmed that rhizome 0.7.1 now works with my old ios ipod. thank you. |
Thank you for fixing this! It works with my iOS 6.1 simulator now that I updated to 0.7.1. |
Glad that it works now :) |
after updating rhizome to 0.6.0 (from old install 29sept2014) i can no longer connect it to my old ipod touch (running ios 6.1.6).
both my own webapp and rhizome's own base example starts, subscribes and the rhizome.on('connected', function fires on the ipod, but after that the client locks up and no other messages are received. the rhizome server reports...
in comparison i can connect with both osx 10.10.3 and an ipad with ios 8.3. the error message "expects binary data" does not show up for these devices.
The text was updated successfully, but these errors were encountered: