簡體   English   中英

將node.js服務器端代碼移植到HTML5 WebSockets

[英]Porting node.js server-side code to HTML5 WebSockets

注意:這不是關於同時使用node.js和HTML5套接字。 我也不想討論我所描述的設置的優點。

node.js在服務器上運行,並且由於它支持通過套接字作為客戶端進行連接,因此它可以充當HTML5 / JS客戶端和使用TCP / IP的服務器(例如數據庫服務器)之間的中間層。所以, node.js和WebSockets都包含打開到服務器的套接字連接的方法。

我的問題是,是否有人成功將node.js腳本移植到WebSockets,即將node.js切換出等式,以便您的Web瀏覽器直接連接到數據庫? 我想它會是這樣的:

  1. 切斷與HTTP有關的一切
  2. 移植使用所有node.js特定函數來使用WebSockets API

如果這已經完成,是不是很麻煩,或者node.js和WebSockets API是否相對類似?

你的問題有點難以解析,但我會采取刺。

如果您有興趣從WebSockets客戶端(瀏覽器)連接到任意TCP套接字服務器,那么您可能會對wsproxy感興趣,它是TCP套接字代理的通用WebSockets。 wsproxy包含在noVNC (HTML5 VNC客戶端)中,並且在C,python和Node(node.js)中有三個參考實現。

如果您有興趣將WebSockets支持添加到特定的給定服務器(即數據庫服務器),那么您可能會發現libvncserver的這個分支 它支持說WebSockets的客戶端(即noVNC),因此不需要代理。

基本的wsproxy代理功能非常直接實現。 最棘手的部分是當前正在使用的WebSockets草案(v76)沒有指定二進制傳輸有效負載(僅UTF-8),因此wsproxy base64對來自WebSockets客戶端的所有流量進行編碼/解碼。 libvncserver中WebSockets連接的實現有點棘手,因為libvncserver有一些關於需要解決的緩沖/框架的非常硬編碼的想法。

免責聲明:我負責novNC,wsproxy和libvncserver的WebSockets補丁。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM