Flutter 如何在Dart http_服务器中为单个客户端设置最大连接限制?
我已经创建了一个简单的颤振应用程序来服务我的电话目录(索引/),以便与PC共享我的文件。Flutter 如何在Dart http_服务器中为单个客户端设置最大连接限制?,flutter,dart,httpserver,dart-io,dart-http,Flutter,Dart,Httpserver,Dart Io,Dart Http,我已经创建了一个简单的颤振应用程序来服务我的电话目录(索引/),以便与PC共享我的文件。 (我使用IDM(Internet下载管理器)下载文件) 它在小文件上运行良好,但当我将大文件下载到PC时,应用程序自动关闭(这里我尝试下载691MB文件) 因为它创建了8个要下载的连接。 如何在此代码中为单个客户端的最大连接设置限制?(如通过最多2个连接下载文件) (使用HttpServer和VirtualDirectory实现。) 确保已启用“读取\u外部\u存储”权限 <uses-permissi
(我使用IDM(Internet下载管理器)下载文件) 它在小文件上运行良好,但当我将大文件下载到PC时,应用程序自动关闭(这里我尝试下载691MB文件) 因为它创建了8个要下载的连接。
如何在此代码中为单个客户端的最大连接设置限制?(如通过最多2个连接下载文件) (使用HttpServer和VirtualDirectory实现。) 确保已启用“读取\u外部\u存储”权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
应用程序在本地网络上工作
URL=>gatewayIP:7766(最有可能的情况是您从手机创建wifi热点并将其连接到PC)
请帮我把这个修好
ps:当我再次打开应用程序并单击startServer时,文件下载会恢复
编辑:我使用IDM(Internet下载管理器)下载导致崩溃的文件,但当我使用从浏览器下载文件时,它工作正常。我在dart:io库中找到了
connectionsInfo()
API
通过connectionsInfo()
API,我们可以访问四种类型的值/属性:Total
,Active
,Idle
,closing
要限制最大连接,我们必须在服务器侦听客户端请求时使用if-else
语句:...
//_server is an httpServer
_server.listen((req){
int maxConnection = 4;
//if active connections are more than maxConnection than server will not response to any request
if(_server.connectionsInfo().active <= maxConnection){
staticFiles.serveRequest(req);
// Or Your Logic for request response...
}
});
...
。。。
//_服务器是一个httpServer
_server.listen((req){
int-maxConnection=4;
//若活动连接多于maxConnection,服务器将不会响应任何请求
如果(_server.connectionsInfo().active
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
...
//_server is an httpServer
_server.listen((req){
int maxConnection = 4;
//if active connections are more than maxConnection than server will not response to any request
if(_server.connectionsInfo().active <= maxConnection){
staticFiles.serveRequest(req);
// Or Your Logic for request response...
}
});
...