Dart有一个服务器端虚拟机,就像V8有一个node.js形式的服务器端虚拟机一样。
看看亚当史密斯的 网络服务器聊天示例 ,它使用服务器端的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); }); }