Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js请求在Android 5.0+;_Android_Ios_Node.js_Websocket - Fatal编程技术网

Node.js请求在Android 5.0+;

Node.js请求在Android 5.0+;,android,ios,node.js,websocket,Android,Ios,Node.js,Websocket,我有一个node/express/socket.io应用程序。当我在安卓4和更早版本上运行应用程序时,它运行得很好。然而,在android 5.0+及更高版本中,每次我的应用程序加载并执行初始路由(/)时,它都会发送两次路由功能。第二次执行时,请求正文中没有任何内容,这导致应用程序出错 app.post('/', someFunction); 我已经记录了这个函数req.url,注意到它在android 5.0+中两次命中了某个函数,但之前的任何操作都只命中一次并正常执行 有人想过为什么会在新

我有一个node/express/socket.io应用程序。当我在安卓4和更早版本上运行应用程序时,它运行得很好。然而,在android 5.0+及更高版本中,每次我的应用程序加载并执行初始路由(/)时,它都会发送两次路由功能。第二次执行时,请求正文中没有任何内容,这导致应用程序出错

app.post('/', someFunction);
我已经记录了这个函数req.url,注意到它在android 5.0+中两次命中了某个函数,但之前的任何操作都只命中一次并正常执行


有人想过为什么会在新版本的android上出现这种情况吗?而不是其他人?还需要指出的是,这在iOS上运行得很好。

问题与sockets.io无关。这与较新的android操作系统web视图如何处理一些JS有关。在与该路由关联的EJS模板中,我有一个

    window.location.reload();
这在iOS和旧的安卓操作系统上非常有效,但新版本不喜欢它。我可以切换到:

window.location.href = window.location.href;

这似乎很管用。

迂回的想法:您使用的是websockets.io还是socket.io?另外,您使用的客户端是什么?如果客户机依赖AJAX,那么这可能与“优雅的回退”有关。当使用socket.io时,它也可能是一个快速的“传输升级”-socket.io从XHR开始,并在测试websocket连接后升级,可能在Android 5.0+上,它的升级速度太快,不利于自身。@Myst我使用的是socket.io,抱歉不是websocket.io。就客户端而言,它是安卓应用程序中的一个web视图。模拟器和实时设备硬件都存在问题。这就是你所说的客户,还是别的什么?谢谢你澄清这一点。io既是客户端又是服务器框架,所以我假设您在Android上使用Socket.io API来编写客户端代码。。。您可以记录这两个请求的传输层(XHR与WebSocket)吗?它可能与socket.io的升级过程有关,但我在暗中掷镖。@Myst lol,我希望我能告诉你我知道如何记录传输层。希望我能帮你。。。我从来没有使用过socket.io的Android(我不完全喜欢这个框架,我更喜欢直接使用WebSocket)。我很高兴你找到了一个解决方案,尽管我必须承认这是一个惊喜。我能想到的唯一区别与缓存()有关。。。可能某些javascript依赖于未完成加载的内容(是否在
onload
事件之前运行了某些内容?)。。。可能是小故障(类似于)。。。funky:)@Myst让我再问你一个问题,你可能也知道答案。在同一个应用程序中,对于旧版本的Android,我得到了一个恒定的页面加载轮,它从不停止。但对于较新的版本,它工作得很好。有什么值得你注意的吗?我不知道。。。我想我需要阅读更多的代码来追踪这个问题。不管怎样,祝你好运!