Dart Nodejs和Socketio

时间:2012-07-15 19:11:58

标签: javascript node.js socket.io dart

将socketio nodejs应用程序转换为dart有哪些选择?是否支持使用dart的nodejs服务器(理想情况下使用dart编辑器的所有奇特的调试功能)? socketio有基于飞镖的图书馆吗?

1 个答案:

答案 0 :(得分:19)

Dart有一个服务器端虚拟机,就像V8有一个node.js形式的服务器端虚拟机一样。

看一下Adam Smith的webserver chat sample,它使用服务器端的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);
  });
}