16

将 socketio nodejs 应用程序转换为 dart 有哪些选择?是否以某种方式支持使用 dart 的 nodejs 服务器(理想情况下具有 dart 编辑器的所有花哨的调试功能)?socketio 有基于 dart 的库吗?

4

1 回答 1

19

Dart 有一个服务器端 VM,就像 V8 有一个 node.js 形式的服务器端 VM。

看看 Adam Smith 的webserver 聊天示例,它使用服务器端的 websockets 与客户端的 websockets 进行通信,这两个部分都是用 Dart 编写的。

服务器端的关键部分如下所示:

import "dart:io";

main() {
  HttpServer server = new HttpServer();

  WebSocketHandler wsHandler = new WebSocketHandler();
  server.addRequestHandler((req) => req.path == "/ws", wsHandler.onRequest);

  wsHandler.onOpen = (WebSocketConnection conn) {
     conn.onMessage = (message) {
       print(message);
       conn.send("hello, this is the server");
     };
  };

  server.listen("127.0.0.1",8080);
}

然后在客户端上,类似

import "dart:html"; 
main() {
  var ws = new WebSocket("ws://127.0.0.1:8080/ws");
  ws.on.open.add( (a) {
    ws.send("hello, this is the client");
  });
  ws.on.message.add( (messsage) {
    print(message);
  });
}
于 2012-07-15T20:03:29.667 回答