【问题标题】:Does the Hapi.js websocket protocol communication need to use hapi.js for the client to connect to the websocket?Hapi.js websocket协议通信需要客户端使用hapi.js连接websocket吗?
【发布时间】:2018-10-14 05:42:31
【问题描述】:

我正在使用 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 向这条路由发出请求吗?没有这方面的例子,所以我不明白我怎么能这样做。如果不可能,那么我想知道我的选择是什么,因为我正在使用的框架中甚至不存在 Socket.io (Flutter)。

【问题讨论】:

  • 这个问题和你提出这个问题的方式非常令人困惑。客户端不需要使用NES与websocket通信
  • 想知道您是否知道这一点?相同的设置。 hapi + 颤动

标签: javascript node.js websocket hapijs nes


【解决方案1】:

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

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

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

至于使用 Hapi 开发 Web 套接字,您没有必须使用NES。使用库可能最有意义,例如 Socket.io 由同一发布者为客户端和服务器开发。虽然将 Socket.io 与 Hapi 一起使用超出了此答案的范围,但您可能会发现 this medium article 很有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 2018-04-23
    • 2020-11-06
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    相关资源
    最近更新 更多