繁体   English   中英

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只是一个协议 ,所以任何用于Flutter的WebSocket客户端库都应该可以工作。 WebSocket不直接与特定语言绑定。 因此,您必须为框架找到并实现WebSocket库。 我浏览了他们的网站,发现了一些潜在的候选人,尽管我确信这不是一个详尽的清单。

以下是Flutter提供的一些潜在的Web套接字软件包:

有关集成软件包的信息,请在此处查看此链接

至于发展与哈啤网络插座,你不必使用NES 使用由同一发布者为客户端和服务器开发的库(如Socket.io)可能是最有意义的。 虽然将Socket.io与Hapi一起使用超出了此答案的范围,但您可能会发现这篇中篇文章很有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM