增加QtWebKit每个主机的最大连接数

4 投票
1 回答
999 浏览
提问于 2025-04-16 11:07

问题:

如何在QtWebKit中增加每个主机默认的6个连接限制?

使用场景:

我在一个PySide应用程序中显示了多个QtWebKit(QWebView)窗口。(PyQt也可以这样使用。)每个网页窗口都使用持久的HTTP连接(Comet)进行数据通信,而默认的每个主机6个连接的限制很快就成了一个障碍。解决这个问题的方法就是增加这个限制,但我找不到相关的API。

1 个回答

6

这个功能没有现成的接口,它是直接写死在 qhttpnetworkconnection.cpp 文件里的,具体写法如下:

#ifdef Q_OS_SYMBIAN
const int QHttpNetworkConnectionPrivate::defaultChannelCount = 3;
#else
const int QHttpNetworkConnectionPrivate::defaultChannelCount = 6;
#endif

你可以自己修改这个文件并重新编译Qt,或者可以使用一个简单粗暴的办法,这个办法是由 special 在 #qt irc.freenode.net 聊天频道里提出来的,代码如下:

hackUrl.setUserName(QString::number(qrand()));

引用 special 的话:

URL中的用户名部分会被用在连接缓存中,所以只要用户名不同,这个限制就不会生效。

撰写回答