【发布时间】:2014-04-20 11:39:54
【问题描述】:
我一直在尝试学习足够的 html、css 和 Dart 来创建我的第一个网页,并且一切顺利,除了我不明白如何创建一个简单的页面和一个服务器端的 web-socket 服务器,它只会回显它。我发现的示例倾向于说明其他 Dart 工具,或者连接到 web 上的 echo 服务器,或者执行其他使他们的代码对新手来说不简单的事情。
我尝试将 Seth Ladd 的 example "dart-example-web-sockets-client" 简化为“最佳”示例。我可以接收从页面发送的内容,重新打包并认为我将其发送回去,但网页上绝对没有任何反应。我通过单击从 Dart 编辑器内部运行 Web 服务器时返回的 URL 来启动页面。由于页面不是,AFAIK,在调试器中运行我在诊断错误时受到了阻碍。
这是来自赛斯服务器的简化代码:
void handleEchoWebSocket(WebSocket webSocket) {
log.info('New WebSocket connection');
// Listen for incoming data. We expect the data to be a JSON-encoded String.
webSocket
.map((string) => JSON.decode(string))
.listen((json) {
// The JSON object should contain a 'request' entry.
var request = json['request'];
switch (request) {
case 'search':
var input = json['input'];
log.info("Received request '$request' for '$input'");
var response = {
'response': request,
'input': input,
};
webSocket.add(JSON.encode(response)); // can't detect page receiving this.
log.info("Echoed request..$request $input"); // correct data
break;
default:
log.warning("Invalid request: '$request'");
}
}, onError: (error) {
log.warning('Bad WebSocket request');
});
}
此示例将用户输入用作两个搜索引擎的输入,打包结果并将其返回到页面以进行显示,从而动态创建新的 DOM 元素。
我只需要指出一个简单的例子,它会回应提交的内容。
【问题讨论】:
标签: websocket dart dart-webui dart-editor