国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網 會員登陸 & 注冊

局域網終端互傳文件項目之課后交流

2022-02-26 22:18 作者:方應杭講編程  | 我要投稿

如果有什么問題請在這里反饋。


最近在學習 Go 語言,語法看得差不多了,想著找點什么項目做做,正好我一直想做一個「局域網PC與手機互傳文件,且不想借助微信/QQ等騷擾軟件」的軟件,于是就用 Go 來做了,最終截圖如下:


軟件截圖

功能很簡單:

  1. PC 上傳文字或文件后創(chuàng)建二維碼,提供給手機瀏覽器掃碼下載

  2. 手機在瀏覽器上傳文字或文件后自動用 websocket 通知給 PC 端,彈出下載提示

這里主要說一下實現(xiàn)思路。

實現(xiàn)思路

用 Loca 創(chuàng)建窗口

我了解到 Go 的如下庫可以實現(xiàn)窗口:

  1. lorca?- 調用系統(tǒng)現(xiàn)有的 Chrome/Edge 實現(xiàn)簡單的窗口,UI 通過 HTML/CSS/JS 實現(xiàn)

  2. webview?- 比 lorca 功能更強,實現(xiàn) UI 的思路差不多

  3. fyne?- 使用 Canvas 繪制的 UI 框架,性能不錯

  4. qt?- 更復雜更強大的 UI 框架

我隨便挑了個最簡單的 Lorca 就開始了。

用 HTML/CSS/JS 制作 UI

我用 React + ReactRouter 來實現(xiàn)頁面結構,文件上傳和對話框是自己用原生 JS 寫的,UI 細節(jié)用 CSS3 來做,沒有依賴其他 UI 組件庫。

Lorca 的主要功能就是展示我寫的 index.html。

用?gin?實現(xiàn)后臺接口

index.html 中的 JS 用到了五個接口,我使用 gin 來實現(xiàn):

router.GET("/uploads/:path", controllers.UploadsController) ? ? ? ? ? ? ? router.GET("/api/v1/addresses", controllers.AddressesController) router.GET("/api/v1/qrcodes", controllers.QrcodesController) ? router.POST("/api/v1/files", controllers.FilesController) ? ? ? router.POST("/api/v1/texts", controllers.TextsController)

其中的二維碼生成我用的是?go-qrcode。

用?gorilla/websocket?實現(xiàn)手機通知 PC

這個庫提供了一個聊天室的例子,稍微改一下就能為我所用了。

整體思路

總得來說:

  1. 用 Lorca 搞出一個窗口

  2. 用 HTML 制作界面,用 JS 調用后臺接口

  3. 用 Gin 實現(xiàn)后臺接口

  4. 上傳的文件都放到 uploads 文件夾中

共 400 行 Go 代碼,700 行 JS 代碼。

如何使用

目前我只測試了 Windows 系統(tǒng),能正常運行。理論上 macOS 和 Linux 也能運行,但我并沒有測試。

你可以在?releases 頁面?下載可執(zhí)行文件,也可以自行編譯源代碼得到可執(zhí)行文件。

Windows 用戶須知

Windows 用戶需要在防火墻的入站規(guī)則中運行 27149 端口的連接,否則此軟件無法被手機訪問。

自行編譯

git clone git@github.com:FrankFang/synk.git cd synk cd server/frontend; yarn; yarn build; cd - ./scripts/build_for_mac.sh ./scripts/build_for_win.sh

我的收獲

  1. 知道如何用 Go 寫一個發(fā)布訂閱(使用 websocket 的時候看到別人的源碼了)

  2. 知道?ch2 <- ch1?與?ch2 <- (<-ch1)?的區(qū)別了,前者一般是寫錯了

  3. 知道了 Go 應用代碼引入本地包的方法


局域網終端互傳文件項目之課后交流的評論 (共 條)

分享到微博請遵守國家法律
全椒县| 玛曲县| 峨眉山市| 南开区| 阿尔山市| 丰宁| 六安市| 长汀县| 翁牛特旗| 永嘉县| 门头沟区| 白河县| 景宁| 当雄县| 和硕县| 哈尔滨市| 鸡泽县| 桦南县| 桃源县| 望谟县| 米泉市| 宁都县| 沂源县| 南康市| 象山县| 集贤县| 科技| 环江| 军事| 枞阳县| 林西县| 红桥区| 抚宁县| 方山县| 广灵县| 汾西县| 泸定县| 炎陵县| 富裕县| 乌恰县| 武川县|