微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有shelf_router的Dartshelf_web_socket给出劫持异常

如何解决带有shelf_router的Dartshelf_web_socket给出劫持异常

我正在尝试实现一个基本的服务器,它同时为 websockets 和 http 请求提供服务。

代码是这样的;

import 'package:shelf_router/shelf_router.dart';
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as io;
import 'package:shelf_web_socket/shelf_web_socket.dart';

void main(List<String> args) async {
  var app = Router();

  var wsHandle = webSocketHandler((webSocket) {
    webSocket.stream.listen((message) {
      print(message);
      webSocket.sink.add("echo $message");
    });
  });

  app.get('/',(Request r) {
    return Response.ok('hello-world');
  });

  app.get("/ws",wsHandle);

  var server = await io.serve(app,'localhost',8080);
  print("Server is on at ${server.address.host} ${server.port}");
}

当我尝试连接 ws url 时,我收到劫持错误

Exception has occurred.
HijackException (A shelf request's underlying data stream was hijacked.
This exception is used for control flow and should only be handled by a Shelf adapter.)

我找不到解决方法This 解决方案对我不起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。