簡體   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