五月天青色头像情侣网名,国产亚洲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 應用代碼引入本地包的方法


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

分享到微博請遵守國家法律
宕昌县| 通化市| 宿迁市| 乌兰县| 永春县| 长葛市| 通化市| 云林县| 南阳市| 隆林| 聂荣县| 广汉市| 宝鸡市| 宁明县| 鄢陵县| 贵德县| 隆林| 深水埗区| 历史| 乌海市| 新宁县| 保康县| 霍城县| 海林市| 汨罗市| 晴隆县| 炉霍县| 锡林郭勒盟| 玉山县| 姚安县| 陆良县| 泸溪县| 安庆市| 海宁市| 康马县| 塔河县| 北流市| 正宁县| 民和| 万年县| 望都县|