Dart: как реализовать и установить простой HTTP-сервер

Мне удалось запустить веб-сервер dart-by-example http-server Hello. Веб-сокет использует порт 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)

person Nate Lockwood    schedule 03.04.2014    source источник


Ответы (1)


Если вы следуете соглашению о компоновке пакетов, вы 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);
    });
  });
}
person Alexandre Ardhuin    schedule 04.04.2014
comment
Когда я запускаю из редактора, все работает. Сервер открывает порт HTTP и порт веб-сокета для прослушивания. Клиент подключается, а затем отправляет «сообщение» JSON в веб-сокет. Код на стороне сервера декодирует его и отправляет обратно подтверждающее сообщение, которое написано на странице клиента. - person Nate Lockwood; 07.04.2014