Hapi.js websocket协议通信是否需要客户端使用hapi.js连接websocket?

Does the Hapi.js websocket protocol communication need to use hapi.js for the client to connect to the websocket?

我正在使用 Hapi 构建 API。我需要 WebSocket 功能,似乎 Nes 是与 Hapi 一起使用的最流行的。这很好,因为 Nes 使事情变得非常简单,例如,测试路线可能看起来像这样...

// Register Nes.
await server.register(Nes);
...
...
// WebSocket route.
server.route({
  method: 'GET',
  path: '/h',
  config: {
    id: 'hello',
    handler: (request, h) => {
      return 'world!';
    }
  }
});

这很好,但是,文档显示使用 WebSockets 向此路由发出请求的唯一方法是在客户端上也使用 Nes...

const Nes = require('nes');

var client = new Nes.Client('ws://localhost');

const start = async () => {

  await client.connect();
  const payload = await client.request('hello');  // Can also request '/h'
  // payload -> 'world!'
};

start();

我的问题是客户端不使用 JavaScript。 Nes 库根本不存在。在那种情况下,我是否仍然可以使用 WebSockets 向这条路由发出请求?没有这方面的例子,所以我不明白我该怎么做。如果不可能,那么我想知道我的选择是什么,因为我正在使用的框架 (Flutter) 中甚至不存在 Socket.io。

由于 WebSockets 只是一个 protocol,任何用于 flutter 的 WebSocket 客户端库都应该可以工作。 WebSockets 不直接绑定到特定语言。因此,您必须为您的框架找到并实现一个 WebSocket 库。我浏览了他们的网站并找到了一些潜在的候选人,但我确信这不是一个详尽的列表。

以下是来自 Flutter 的一些潜在网络套接字包:

有关集成包的信息,请在此处查看 this link

至于用 Hapi 开发 web 套接字,你 没有 使用 NES. It may make the most sense to use a library, like Socket.io that is developed by the same publisher for both the client and server. While using Socket.io with Hapi is beyond the scope of this answer, you may find this medium article 有帮助。