是的,在计划用户测试的前一天我发现我的iPad PhoneGap或Cordova应用程序无法在iPad 3 IOS 5.1.1上运行,而它在iPad 2上完美运行与IOS版本相同!愚蠢的一个人,我,我'假设'这将保证在新的iPad上工作。经验教训,我想。
我有一个可以顺利运行webSocket服务器的Arduino设备。我一直在谷歌Chrome最新开发版本的笔记本电脑上使用相同的Arduino设备测试我的应用程序,之前在具有最新iOS版本的iPad 2上:它就像一个魅力!
在iPad方面,我正在运行使用webSockets的PhoneGap或Cordova HTML5 / JavaScript应用程序。
我不依赖于任何第三方网络/网络套接字服务或技术,只是在Google Chrome上运行的webkit网络套接字实现,而且显然只有iPad 2 ..
因此,在iPad 3中:WebSocket连接似乎失败了。我不是网络大师,虽然我认为我知道基础知识,但如果握手出现问题,我试图找出使用Wireshark。但似乎甚至没有握手。 iPad 3在ARP请求时停止!
我已经包含了我的Wireshark链接(仅混杂模式,监控模式似乎不起作用)输出及其截图:
Laptop output (Wireshark needed)
iPad 3 output (Wireshark needed)
发生了什么事?为什么我的Arduino设备没有响应来自iPad 3的ARP,它是否响应来自iPad 2的ARP?
奇怪的是:iPad 3端的Web套接字实现应该没有任何问题,我查看了这个网络套接口演示网站:http://www.websocket.org/echo.html
答案 0 :(得分:1)
原因可能只是iPad2和iPad 3上的旧版本(目前最新的IOS 5.1.1)。我之前已经多次更新了webSocket服务器代码,因为服务器端使用的协议也比较旧。在更新之后,我意识到我从未测试过应用程序的通信部分。笨!
我有两个选择:希望webSocket服务器的创建者可以提供旧协议实现的版本,或者更新到IOS 6 beta 3,其中有(根据caniuse.com)完整的websocket支持(读取) :他们在safari mobile中实现了正确的协议,现在才开始...)。我希望我的错误让其他人不能做同样的事情:在你的应用程序中使用webSockets时,请务必在每次迭代时始终测试通信流程!