标签: httpserver

Go:http.Server连接池

我知道 Go 语言中的 http.Client 有 Transport 类型的连接池

但是http.Server中没有Transport

我希望访问服务器的池。

  1. 列出所有连接
  2. 关闭连接/从池中删除它们

更新

我正在学习 Go 源代码 https://code.google.com/p/go/source/browse/src/pkg/net/http/server.go#1087

看来这个函数的答案是没有Pool。

可能有人知道如何覆盖该功能?我是否必须创建包的洞副本?

connection-pooling go httpserver

5
推荐指数
1
解决办法
3766
查看次数

设置一个监听文件套接字的 HTTP 服务器

我如何使用HTTPServer(或其他一些类)来设置一个侦听文件系统套接字而不是实际网络套接字的 HTTP 服务器?我所说的“文件系统套接字”是指该AF_UNIX类型的套接字。

python httpserver

5
推荐指数
1
解决办法
4774
查看次数

Http-server nodejs 运行但不工作

我正在尝试为 nodejs 运行 http-server。

使用npm start服务器在给定端口(8000)上完美启动后,出现了一些可忽略的错误。但是当我尝试运行应用程序 url 时,它显示“网页不可用”。当我尝试访问pingIP 时,它通过完美发送数据包来响应。

当我运行http-server命令时,它显示它在 127.0.0.1:8080 和 172.31.46.121:8080 上运行。我尝试将本地主机端口更改为 8080,但结果没有差异。

我正在使用腻子客户端在 Windows 上运行 linux。

nodejs 版本-5.4.1

npm 版本-3.7.0

请帮忙..

还有一件事..

我在端口 80 的 putty 上运行此服务器。然后在服务器仍在运行的情况下,我尝试使用 Bitnami 客户端(即使用npm start)在同一端口(80)上运行相同的 nodejs 服务器,并且没有端口冲突。当我通过 Bitnami 客户端运行该应用程序时,即使该应用程序在该端口也运行良好。

http-server 文件代码-

` #!/usr/bin/env node

var colors = require('colors'),
httpServer = require('../lib/http-server'),
argv = require('optimist').argv,
portfinder = require('portfinder'),
opener = require('opener');

if (argv.h || argv.help) {
console.log([
"usage: http-server [path] [options]", …
Run Code Online (Sandbox Code Playgroud)

httpserver node.js

5
推荐指数
1
解决办法
2万
查看次数

Goroutine 长时间处于 IO 等待状态

我有一个大流量服务器(超过 800K qps),使用 go1.7。

http://urltoserver:debugport/debug/pprof/goroutine?debug=2我看到8K个goroutines,其中近1800个正在IO等待几分钟。其中一个 Goroutine 堆栈如下所示。

    goroutine 128328653 [IO wait, 54 minutes]:
    net.runtime_pollWait(0x7f0fcc60c378, 0x72, 0x7cb)
      /usr/local/go/src/runtime/netpoll.go:160 +0x59
    net.(*pollDesc).wait(0xc4231d0a00, 0x72, 0xc42479fa20, 0xc42000c048)
      /usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
    net.(*pollDesc).waitRead(0xc4231d0a00, 0x92f200, 0xc42000c048)
      /usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
    net.(*netFD).Read(0xc4231d09a0, 0xc423109000, 0x1000, 0x1000, 0x0, 0x92f200, 0xc42000c048)
      /usr/local/go/src/net/fd_unix.go:243 +0x1a1
    net.(*conn).Read(0xc4234282b8, 0xc423109000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
      /usr/local/go/src/net/net.go:173 +0x70
    net/http.(*connReader).Read(0xc420449840, 0xc423109000, 0x1000, 0x1000, 0xc422b38b68, 0x100000000, 0xc421810601)
      /usr/local/go/src/net/http/server.go:586 +0x144
    bufio.(*Reader).fill(0xc422e22360)
      /usr/local/go/src/bufio/bufio.go:97 +0x10c
    bufio.(*Reader).Peek(0xc422e22360, 0x4, 0x7a066c, 0x4, 0x1, 0x0, 0x0)
      /usr/local/go/src/bufio/bufio.go:129 +0x62
    net/http.(*conn).readRequest(0xc422b38b00, 0x931fc0, 0xc424d19440, 0x0, 0x0, 0x0)
      /usr/local/go/src/net/http/server.go:762 +0xdff
    net/http.(*conn).serve(0xc422b38b00, 0x931fc0, …
Run Code Online (Sandbox Code Playgroud)

linux go httpserver

5
推荐指数
1
解决办法
1万
查看次数

Google WebSpeech API 为麦克风权限抛出“不允许”错误

我正在使用在此站点上找到的 Google 的 WebSpeech API:https : //developers.google.com/web/updates/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API

在我的 Windows 机器上使用 Python 的 http.server, 在此处输入图片说明

它可以正常工作: 在此处输入图片说明

我上传完全相同的文件,相同的 API,但它在我的 CentOS 远程服务器中不起作用,为麦克风权限抛出“不允许”错误: 在此处输入图片说明

我认为这个问题可能与 http 服务器有关。所以我尝试使用 Apache Httpd、Python http.server 和 Nginx。他们都没有工作。

知道是什么阻挡了麦克风吗?谢谢!

javascript speech-recognition google-chrome httpserver

5
推荐指数
1
解决办法
3137
查看次数

TCP 服务器与 HTTP 服务器

我正在编写一个简单的 python3 网络服务器。我尝试过各种教程,并且效果都很好。尽管如此,还是有一个我不明白的区别。

在一篇教程中,他们使用 HTTPServer,如下所示:

server = HTTPServer(('', PORT_NUMBER), myHandler) 
server.serve_forever()
Run Code Online (Sandbox Code Playgroud)

在另一个教程中,他们使用 socketserver.TCPServer ,如下所示:

with socketserver.TCPServer(('', PORT_NUMBER), myHandler) as httpd:
    httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

两种方法有什么区别?我所需要的只是一个简单的网络服务器,它能够通过 POST 接收 JSON 文件并使用另一个 JSON 进行询问。在这两种情况下,我都会使用相同的处理程序:

class myHandler(BaseHTTPRequestHandler):
    def _set_headers(self):
        self.send_response(200)
        self.send_header('Content-type', 'application/json')
        self.end_headers()

    def do_GET(self):
        self._set_headers()
        self.wfile.write("{dummy:'dummy'}")

    def do_POST(self):
        # Doesn't do anything with posted data for this example
        self._set_headers()
        self.wfile.write("{dummy:'dummy'}")
Run Code Online (Sandbox Code Playgroud)

其中一种方法更适合我的需求吗?有没有更好的方法来编写这个服务器来满足我的需要?

感谢您的帮助和时间!

python httpserver tcpserver

5
推荐指数
1
解决办法
2009
查看次数

检测 dart http 服务器中的客户端断开连接

我使用 dart http 服务器作为模拟服务器来测试我的 flutter 应用程序与真实服务器的交互,我正在做这样的事情:

    final _server = await HttpServer.bind(InternetAddress.anyIPv4, 0);
    _server.listen(handleRequest, onError: (error) {
      print("onError");
    }, onDone: () {
      print("Closed");
    });
Run Code Online (Sandbox Code Playgroud)

我的测试用例之一包括用户取消长时间运行的请求。我想测试请求是否真的被取消并且连接关闭。

所以我需要一种方法来在服务器端检测请求是否已被取消:

void handleRequest(HttpRequest request) async {
    // This future is finished, when the test decides, that the client should have canceled the request
    await waitFuture;
    request.response
      ..statusCode
      ..close():
    // How do I know here if the client has canceled the request in the meantime?
Run Code Online (Sandbox Code Playgroud)

不幸的是,服务器似乎只是忽略任何客户端断开连接。

所以我的问题是:有没有一种方法可以使用 darts HTTP 服务器检测客户端断开连接?

httpserver dart

5
推荐指数
0
解决办法
476
查看次数

如何在flutter中创建HTTP服务器应用程序?

我在 Flutter 中工作,我必须创建一个 Flutter 应用程序来创建 HTTP 服务器,并为我们的本地手机存储提供服务。我无法找到任何与在 flutter 中创建 HTTP 服务器相关的 Flutter 插件,这是我在 Play Store 中找到的示例应用程序,它实现了 HTTPS 服务器:

该应用程序的屏幕截图

以下是应用程序如何通过 HTML 页面公开手机存储空间:

在此输入图像描述

我如何在 Flutter 中创建这个应用程序?请建议任何插件。

android httpserver flutter

5
推荐指数
1
解决办法
1万
查看次数

如何为 POST 配置 Python 服务器?

我正在我的电脑上尝试一些 PHP 并制作了一个小型 python 服务器来托管文件,一个问题:它无法执行 POST,我总是收到错误 501。我听说你可以在这些服务器中实现 POST ,但我没有找到如何做到这一点,有人可以帮忙吗?

这是我当前的服务器:

import http.server
import socketserver

PORT = 8080
Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

python httpserver

5
推荐指数
1
解决办法
3万
查看次数

使用scala akka spray进行非常基本的http服务器测试时出错

我做了一个非常基本的喷雾测试,使用:

  • 阿卡2.10 2.24
  • Scala 2.10.3
  • 喷雾罐1.3.1
  • sbt 0.13
  • IntelliJ 13

这是我的代码:

val myListener: ActorRef = system.actorOf(Props[TestHttpListener], "httpListener")
IO(Http) ! Http.Bind(myListener, interface = "localhost", port = 8080)
Run Code Online (Sandbox Code Playgroud)

httpListener起反应对Http.ConnectedHttp.Register(self).

我使用sbt来运行我的代码.它失败了AbstractMethodError:

[ERROR] [07/12/2014 18:46:48.364] [default-akka.actor.default-dispatcher-5] [ActorSystem(default)] Uncaught error from thread [default-akka.actor.default-dispatcher-5] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled
java.lang.AbstractMethodError: spray.can.HttpManager.akka$actor$ActorLogging$_setter_$log_$eq(Lakka/event/LoggingAdapter;)V
        at akka.actor.ActorLogging$class.$init$(Actor.scala:335)
        at spray.can.HttpManager.<init>(HttpManager.scala:29)
        at spray.can.HttpExt$$anonfun$1.apply(Http.scala:153)
        at spray.can.HttpExt$$anonfun$1.apply(Http.scala:153)
        at akka.actor.TypedCreatorFunctionConsumer.produce(Props.scala:422)
        at akka.actor.Props.newActor(Props.scala:331)
        at akka.actor.ActorCell.newActor(ActorCell.scala:534)
        at akka.actor.ActorCell.create(ActorCell.scala:560)
        at akka.actor.dungeon.FaultHandling$class.finishCreate(FaultHandling.scala:135)
        at akka.actor.dungeon.FaultHandling$class.faultCreate(FaultHandling.scala:129)
        at akka.actor.ActorCell.faultCreate(ActorCell.scala:338)
        at akka.actor.dungeon.FaultHandling$class.faultRecreate(FaultHandling.scala:58)
        at …
Run Code Online (Sandbox Code Playgroud)

scala httpserver akka spray

4
推荐指数
1
解决办法
2409
查看次数