android – 有些文件不会从lighttpd传输到Droid

我们在应用程序中流式传输某些文件时遇到了一些奇怪的问题.经过大量的测试后,我们将其缩小到了lighttpd和Droid之间的某种问题,而且不仅仅是我们的应用程序,还有内置播放器.

如果您将Droid浏览器指向http://stream29l.grooveshark.com/collinSong.mp3,它将无效.在http://staging.api.grooveshark.com/collinSong.mp3上托管在Apache上的相同文件非常流畅.文件是相同的.这两个URL都适用于运行1.5和1.6的其他手机,以及运行2.0.1的模拟器.

无论是通过wifi还是通过3G播放,lighttpd URL都会失败.

我的猜测是Droid不能容忍网络级别的某些时髦,但我已经完成了我可以调试的内容.有任何想法吗?

更新:我在运行CentOS的笔记本电脑上安装了lighttpd,并将其设置为提供相同的文件(对不起,外界无法访问),Droid可以很好地为他们服务.它必须是我们服务器的特定配置问题,或者是lighttpd版本的差异.现在我的笔记本电脑运行1.4.22,我们的生产服务器运行1.5.0.我们的生产服务器还有以下配置设置,让我在笔记本电脑上设置问题(注意:我可能缺少模块等):

server.max-fds = 7000
server.network-backend = "gthread-aio"
server.stat-cache-engine = "fam"

服务器还安装了以下附加模块:

                            "mod_proxy_core",
                            "mod_proxy_backend_http",
                            "mod_proxy_backend_fastcgi",

我将尝试使模块和配置匹配100%,看看是否明天再现问题.如果没有,我会尝试将笔记本电脑升级到1.5.0并查看是否可以.

与此同时,有没有人知道与上述配置相关的问题?

更新2:
我在笔记本电脑上升级到1.5.0,流式传输collinSong.mp3仍然有效.
添加:
    server.network-backend =“gthread-aio”
没有打破流媒体.
不过这条线做了:
    server.stat-cache-engine =“fam”

评论上面的行使我的笔记本电脑上的流式传输工作,并启用它使它无法正常工作.我实际上让我们的管理员从配置中删除该行并重新启动轻微(他说我们不需要那个设置),但问题仍然存在.

接下来我尝试在我的笔记本电脑上留下stat-cache-engine注释并添加以下行:
                                “mod_proxy_core”
                                “mod_proxy_backend_http”
                                “mod_proxy_backend_fastcgi”
启用这些后,我的笔记本电脑上的流媒体再一次断开,当我将其关闭时可以正常工作.不幸的是,我们在服务器上使用的线程模型显然需要这些,所以我无法尝试在生产中关闭它们.我不知道这是否给任何人提供了任何线索,但这就是我的全部.

我很乐意与摩托罗拉的开发人员取得联系,因为它似乎是该平台的一个漏洞;适用于其他Android设备,PC,iPhone,黑莓手机和诺基亚手机,但不适用于Droid.

最佳答案 我真的没有给你一个答案,但经过一些非常基本的检查,我可以告诉你,登台(Apache)返回一个200与整个文件和stream29l(lighttpd)返回206与部分文件.也许droid不支持流媒体?

点赞