Dart:如何实现和安装简单的HTTP服务器

时间:2014-04-03 23:50:10

标签: dart dart-webui

我已经能够运行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)

1 个答案:

答案 0 :(得分:3)

如果您按照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);
    });
  });
}