2

我正在从 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?

4

1 回答 1

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] 一起完成。

于 2014-02-13T23:30:51.093 回答