簡體   English   中英

如何集成Golang后端和Javascript(three.js)前端?

[英]How to integrate Golang backend and Javascript (three.js) frontend?

我想用我最喜歡的編程語言Golang編寫一個3D應用程序。 但是,我不希望直接使用原生OpenGL作為圖形前端,因為這將需要比我願意容忍的更大的學習曲線。 另外,我真的不想使用go:ngine這樣的Golang游戲引擎。

在做了一些研究后,我發現了令人驚訝的WebGL Javascript庫three.js,我非常感興趣,我在幾個小時內完成了一個介紹性的Javascript課程。 我根本不是一個真正的Web開發人員,所以我想知道我的應用程序主要在Go中編寫我的應用程序是多么實際,但有一個three.js前端。

一些具體問題:

  • 使用Javascript / three.js作為這樣的Golang服務器的前端是否值得/切實可行?
  • 如果值得,我在哪里可以學習如何將兩者干凈地融為一體?
  • 如果它不值得,我有哪些替代品?

謝謝,任何回復表示贊賞。

編輯:

您是否計划在Go中對幾何體進行操作,可能是實時的,並使用Websockets與您的Javascript層進行通信?

是的,這就是我現在的想法。 我打算讓我的(Golang)程序根據用戶的一些參數生成頂點和三角形流。 在用戶提供參數(我在Javascript前端看到滑塊+輸入框)后,每個“結構”都會立即生成。

以下是Go程序可能生成的一個示例,在GNUPlot中繪制: pic http://drive.alexozer.com/helix-fractal.png

如果是這種情況,你會低估Javascript。 您應該在Javascript中編寫大部分應用程序,並將Go用作經典的后端服務層,如用戶帳戶,持久狀態等。

除此之外,我會這樣做很好:

  • 核心生成過程從根本上取決於Goroutines和渠道
  • 我對Web開發幾乎一無所知,包括前端和后端

所以我想我正在詢問這三種可能性之一的實現細節:

  • 在JS中編寫大部分程序,包括生成器,在Go中編寫一個最小的后端
  • 在Go中編寫大部分程序並使用JS作為圖形前端
  • 別的什么?
  • 我建議省略整個Websocket方面,因為它只是一種可能的優化(甚至可能不是那樣)。

    如果你需要依賴Go的並發模型,那就去做吧,在Go中編寫你的組件,然后在Go中使用來自HTML請求的參數的Web服務器,使用它們來計算結果並以JSON格式發回數據。

    在前端,您將只關注在用戶更改參數時發送此請求並顯示JSON數據,您可以立即使用ThreeJS。

    你仍然需要學習一些Web開發和Javascript。 但是,嘿,他們說網絡是未來;-)

    我認為這是你的案例,因為你的應用程序以非常嚴格的請求結果方式運行。

    您的問題的答案很大程度上取決於您計划在Go組件和Javascript組件之間繪制線的確切位置。 從描述問題的方式來看,我覺得你想在Go中編寫大部分應用程序並僅將JS用作顯示層? 我不建議這樣做。

    重新解釋一下我的問題:你是否計划在Go中對幾何進行操作,可能是實時的並使用Websockets與你的Javascript層進行通信? 如果是這種情況,你會低估Javascript。 您應該在Javascript中編寫大部分應用程序,並將Go用作經典的后端服務層,如用戶帳戶,持久狀態等。

    如果我知道你打算做什么,我或許可以給出一個更具體的答案。

    暫無
    暫無

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

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