飞镖,将http请求转换为websocket?

时间:2014-02-13 20:59:44

标签: websocket dart dart-io

我正在通过dart编辑器中的欢迎页面中的dartiverse_search示例进行选择。我看到它使用路径路径来决定是否将请求转换为websocket:

// The client will connect using a WebSocket. Upgrade requests to '/ws' and
// forward them to 'handleWebSocket'.
router.serve('/ws')
  .transform(new WebSocketTransformer())
  .listen(handleWebSocket);

是否可以在不使用路由路径的情况下将请求转换为websocket,例如使用查询字符串到根URL?

1 个答案:

答案 0 :(得分:4)

您可以指定升级到WebSocket连接的任何条件。您甚至可以将任何连接请求升级到WebSocket连接,而无需指定如下条件:

WebSocketTransformer.upgrade(request).then((WebSocket websocket) {
    websocket.listen((String text) { 
         // process sent data
    });
    websocket.add(JSON.encode("Hello"));
});

如果请求不是有效的Web套接字升级请求,则将返回状态代码为500的HTTP响应。否则,在升级过程完成时,返回的将来将使用[WebSocket]完成。