最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

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

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


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

分享到微博請遵守國家法律
南昌市| 灵丘县| 宁德市| 静安区| 新巴尔虎左旗| 区。| 化隆| 弋阳县| 桐庐县| 罗定市| 辛集市| 宁夏| 津市市| 宝应县| 长宁区| 建平县| 太白县| 额济纳旗| 思南县| 沁水县| 遵化市| 梅州市| 平利县| 宜都市| 津南区| 新兴县| 鹤山市| 化州市| 江山市| 仪征市| 象州县| 麟游县| 屯昌县| 平遥县| 兴业县| 巫溪县| 永顺县| 宁河县| 新干县| 澎湖县| 平乡县|