【问题标题】:Dart: How to Implement and install a simple HTTP serverDart:如何实现和安装一个简单的 HTTP 服务器
【发布时间】:2014-04-03 23:50:09
【问题描述】:

我已经能够运行 dart-by-example http-server Hello Web 服务器。 websocket使用9223端口,http服务器使用8080。

在我进行构建后,我在 build/bin 中找不到服务器端代码。

接下来我该怎么做才能安装所有东西,以便我可以尝试运行 ws_server.dart 并从我的浏览器连接?

我的编辑组织:

Server
  packages
  bin
    packages
    fireimager_server.dart (server side websocket handling code)
  build
    bin
    web
  lib
    communication.dart  (common code)
  web
    index.html
    main.css
    main.dart
    WebsocketClient.dart  (client websocket code)

【问题讨论】:

    标签: dart dart-webui


    【解决方案1】:

    如果您关注package layout convention,则您的server.dart 应该在$PROJECT/bin 中,而您的网络内容应该在$PROJECT/web 中。

    通过运行pub build,您应该获得一个新目录$PROJECT/build/web。现在您可以使用以下server.dart 代码公开此构建目录:

    library simple_http_server;
    
    import 'dart:io';
    import 'package:http_server/http_server.dart' show VirtualDirectory;
    
    void main() {
      final MY_HTTP_ROOT_PATH = Platform.script.resolve('../build/web').toFilePath();
      final virDir = new VirtualDirectory(MY_HTTP_ROOT_PATH)
        ..allowDirectoryListing = true;
    
      HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 8080).then((server) {
        server.listen((request) {
          virDir.serveRequest(request);
        });
      });
    }
    

    【讨论】:

    • 当我从编辑器运行时,一切正常。服务器打开 HTTP 端口和 Web 套接字端口进行侦听。客户端连接然后在 Web 套接字上发送 JSON“消息”。服务器端代码对其进行解码并返回一个确认消息,该消息写在客户端页面上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多