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