[英]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.