Blackberry上的套接字连接比HTTP更快吗?

4
我正在为黑莓写一个应用程序,最初是使用标准的J2ME实现的。网络连接是使用Connector.open("socket://...:80/...")而不是http://完成的。
现在,我已经使用了这两种方法来实现连接,似乎有时候套接字方法更加响应迅速,但有时候完全不起作用。这两种方法之间是否存在显著差异?主要我想要实现的是从连接中获取响应性能,以便得到平滑的进度条。
4个回答

5
Blackberry的httphttps实现提供了比socket更多连接到目标服务器的选项,并且当然为您实现了所有HTTP协议内容。虽然我没有对它们进行基准测试,但在某些情况下,直接通过socket使用TCP可能更快,特别是如果端口80上正在侦听的内容不是HTTP服务器(没有协议开销)。
过去我遇到了不同网络提供商的困难,一些需要deviceside=true,而其他则需要deviceside=false,并且没有真正的方法可以在第一个支持该网络的电话呼叫之前知道。

我主要想要实现的是连接的响应能够获得平稳的进度条。

请原谅我这么说,但“平稳的进度条”是“画蛇添足”——虽然好看,但对于应用程序的功能、可靠性或健壮性并不关键。在这种情况下,选择更健壮且减少代码大小的可能是http

我以前没有听过"gilding the lily"这个短语,但我很喜欢。但我的主要问题是状态栏在数据返回之前等待了很长时间,一旦能够读取数据,它就会非常快地进展。 - Ed Marty
你看过BB浏览器的进度条吗?它在你点击“GO”后立即开始移动,但此时实际上正在等待连接。它以块状(约10%?)递增,直到中途点,然后以相同速度开始更新,但是逐渐变小。 - Ken Gentle
否则,您可以在连接建立时尝试使用“连接”模态对话框,然后在数据开始传输之后再使用进度条。建立连接需要一些时间,在此期间如果没有更新,进度条将不会移动。 - Ken Gentle
更像是将丑陋但实用的东西镀金。 - mxcl

2

由于两者都是通过网络进行操作,我认为你无法保证进度条的平滑。如果提醒用户待在一个地方,这样你就有机会获得稳定的连接,从而增加成功的几率;)

套接字连接比HTTP连接的开销少得多。实际上,HTTP连接是通过套接字连接运行的。你可以利用套接字连接的减少开销来提高响应速度,但你可能需要比使用HTTP更多的工作。API更低级别,因此编码更加复杂。


1

在黑莓设备上,套接字和HTTP连接之间的一个区别是,在BES和BIS连接的情况下,HTTP连接可以通过HTTP代理透明地路由。


0

理论上,套接字会更快,但是您需要负责管理自己协议的开销(取决于复杂性)。虽然套接字更轻量级,但我发现HTTP及其相关内容大大减少了麻烦。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接