五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

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

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 應用代碼引入本地包的方法


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

分享到微博請遵守國家法律
聊城市| 花莲市| 裕民县| 天镇县| 沙雅县| 青铜峡市| 郴州市| 遵化市| 白玉县| 晋江市| 金秀| 文水县| 禹城市| 玛曲县| 公主岭市| 凌云县| 普兰县| 涟水县| 偃师市| 兰溪市| 个旧市| 丘北县| 开封市| 黄骅市| 新巴尔虎右旗| 大冶市| 莲花县| 福州市| 五大连池市| 绩溪县| 泸水县| 泗阳县| 合肥市| 湄潭县| 清丰县| 绥江县| 铜陵市| 邵阳县| 阳城县| 左权县| 洛阳市|