讓你少走彎路的搭建樹莓派的Net與NodeJS運行環境

来源:http://www.cnblogs.com/BruceWan/archive/2016/12/08/6144692.html
-Advertisement-
Play Games

樹莓派是當前最火的嵌入計算平臺沒有之一,樹莓派可以給我們無數的想象,樹莓派的高性能、低功耗、低成本、可擴展性(最新的樹莓派原生支持WIFI和藍牙,這功能太贊了)深受大家的喜愛。雖然樹莓派到目前為止已經很好安裝系統了。但是要想方便的使用和部署開發的軟體還是比較麻煩的。 安裝環境的話,你的有樹莓派硬體( ...


  樹莓派是當前最火的嵌入計算平臺沒有之一,樹莓派可以給我們無數的想象,樹莓派的高性能、低功耗、低成本、可擴展性(最新的樹莓派原生支持WIFI和藍牙,這功能太贊了)深受大家的喜愛。雖然樹莓派到目前為止已經很好安裝系統了。但是要想方便的使用和部署開發的軟體還是比較麻煩的。

  安裝環境的話,你的有樹莓派硬體(此圖為:樹莓派3 Model B),你還得需要一個支持HDMI顯示器(電視機也可以)、HDMI線、MicroSD卡(8G+,Class10+級別)、電源適配器(5V、2A+、MicroUSB介面)、讀卡器(支持MicroSD卡),至於還有鍵盤、滑鼠、散熱片、風扇、保護殼等。

  有了這些東西就可以開始搭建環境,下麵的例子以樹莓派3 Model B為硬體搭建。

  1.安裝系統

  在官網下載NOOBS,NOOBS相當PC的BIOS,手機的Recovery。用於引導和配置系統硬體環境,這裡我下載的是NOOBS帶Raspbian桌面環境的版本(快速下載-移入查看密碼)。

  準備MicroSD,並用工具格式化SDFormatter,選擇待格式化的盤符,點擊進行格式化(快速下載-移入查看密碼)。

  解壓NOOBS,拷貝NOOBS_XXX解壓文件夾下麵的文件與文件夾到MicroSD的根目錄。

將MicroSD插入樹莓派,接上顯示器與電源、滑鼠、鍵盤。(樹莓派電路自身是裸露的,千萬不要直接與金屬錶面接觸,註意釋放手上靜電)。

  開機出現彩色封面表示正常啟動,系統即將出現引導界面,點擊“Shift”鍵指導進入安裝界面。

  進入一下界面,表示大功告成,選擇Raspbian,點擊Install,進行安裝系統。

  如何進行解析度適配?在NOOBS的管理界面中找到“EditConfig”,進入編輯框,找到hdmi_group和hdmi_mode的值對應想要調整的解析度,其他解析度可自行谷歌、百度。

以下是電腦顯示器使用的解析度。這些解析度的hdmi_group=2
hdmi_mode=1    640x350   85Hz
hdmi_mode=2    640x400   85Hz
hdmi_mode=3    720x400   85Hz
hdmi_mode=4    640x480   60Hz
hdmi_mode=5    640x480   72Hz
hdmi_mode=6    640x480   75Hz
hdmi_mode=7    640x480   85Hz
hdmi_mode=8    800x600   56Hz
hdmi_mode=9    800x600   60Hz
hdmi_mode=10   800x600   72Hz
hdmi_mode=11   800x600   75Hz
hdmi_mode=12   800x600   85Hz
hdmi_mode=13   800x600   120Hz
hdmi_mode=14   848x480   60Hz
hdmi_mode=15   1024x768  43Hz  DO NOT USE
hdmi_mode=16   1024x768  60Hz
hdmi_mode=17   1024x768  70Hz
hdmi_mode=18   1024x768  75Hz
hdmi_mode=19   1024x768  85Hz
hdmi_mode=20   1024x768  120Hz
hdmi_mode=21   1152x864  75Hz
hdmi_mode=22   1280x768        reduced blanking
hdmi_mode=23   1280x768  60Hz
hdmi_mode=24   1280x768  75Hz
hdmi_mode=25   1280x768  85Hz
hdmi_mode=26   1280x768  120Hz reduced blanking
hdmi_mode=27   1280x800        reduced blanking
hdmi_mode=28   1280x800  60Hz
hdmi_mode=29   1280x800  75Hz
hdmi_mode=30   1280x800  85Hz
hdmi_mode=31   1280x800  120Hz reduced blanking
hdmi_mode=32   1280x960  60Hz
hdmi_mode=33   1280x960  85Hz
hdmi_mode=34   1280x960  120Hz reduced blanking
hdmi_mode=35   1280x1024 60Hz
hdmi_mode=36   1280x1024 75Hz
hdmi_mode=37   1280x1024 85Hz
hdmi_mode=38   1280x1024 120Hz reduced blanking
hdmi_mode=39   1360x768  60Hz
hdmi_mode=40   1360x768  120Hz reduced blanking
hdmi_mode=41   1400x1050       reduced blanking
hdmi_mode=42   1400x1050 60Hz
hdmi_mode=43   1400x1050 75Hz
hdmi_mode=44   1400x1050 85Hz
hdmi_mode=45   1400x1050 120Hz reduced blanking
hdmi_mode=46   1440x900        reduced blanking
hdmi_mode=47   1440x900  60Hz
hdmi_mode=48   1440x900  75Hz
hdmi_mode=49   1440x900  85Hz
hdmi_mode=50   1440x900  120Hz reduced blanking
hdmi_mode=51   1600x1200 60Hz
hdmi_mode=52   1600x1200 65Hz
hdmi_mode=53   1600x1200 70Hz
hdmi_mode=54   1600x1200 75Hz
hdmi_mode=55   1600x1200 85Hz
hdmi_mode=56   1600x1200 120Hz reduced blanking
hdmi_mode=57   1680x1050       reduced blanking
hdmi_mode=58   1680x1050 60Hz
hdmi_mode=59   1680x1050 75Hz
hdmi_mode=60   1680x1050 85Hz
hdmi_mode=61   1680x1050 120Hz reduced blanking
hdmi_mode=62   1792x1344 60Hz
hdmi_mode=63   1792x1344 75Hz
hdmi_mode=64   1792x1344 120Hz reduced blanking
hdmi_mode=65   1856x1392 60Hz
hdmi_mode=66   1856x1392 75Hz
hdmi_mode=67   1856x1392 120Hz reduced blanking
hdmi_mode=68   1920x1200       reduced blanking
hdmi_mode=69   1920x1200 60Hz
hdmi_mode=70   1920x1200 75Hz
hdmi_mode=71   1920x1200 85Hz
hdmi_mode=72   1920x1200 120Hz reduced blanking
hdmi_mode=73   1920x1440 60Hz
hdmi_mode=74   1920x1440 75Hz
hdmi_mode=75   1920x1440 120Hz reduced blanking
hdmi_mode=76   2560x1600       reduced blanking
hdmi_mode=77   2560x1600 60Hz
hdmi_mode=78   2560x1600 75Hz
hdmi_mode=79   2560x1600 85Hz
hdmi_mode=80   2560x1600 120Hz reduced blanking
hdmi_mode=81   1366x768  60Hz
hdmi_mode=82   1080p     60Hz
hdmi_mode=83   1600x900        reduced blanking
hdmi_mode=84   2048x1152       reduced blanking
hdmi_mode=85   720p      60Hz
hdmi_mode=86   1366x768        reduced blanking

  修改系統預設密碼、位置、時區、鍵盤、WiFi地區。

  開啟VNC,SSH方面遠程無屏管理。

  修改系統用戶密碼。

  獲取ROOT許可權打開命令終端(Ctrl + Alt + T),輸入以下內容(“sudo” 是臨時使用最高許可權執行命令的意思)。

sudo passwd root
執行此命令後系統會提示輸入兩遍的root密碼,輸入你想設的密碼即可,然後在執行
sudo passwd --unlock root

   修改軟體中心鏡像地址提高下載速度,鏡像地址可以自行谷歌、百度。

su #(如果已經是root賬戶登錄,即可跳過此步驟)
cd /etc/apt/&&mv sources.list sources.list.bak #(備份現有的源文件)
sudo nano /etc/apt/sources.list #(添加新配置文件)
=================
deb http://mirrors.cqu.edu.cn/Raspbian/raspbian/ wheezy main contrib non-free rpi #(添加重慶大學的鏡像)
#Ctrl + O、Enter、Ctrl + X #保存退出
=================
sudo apt-get update && apt-get upgrade #(測試更新)

  文件授權,註意不要濫用。

sudo chmod 777 /xxx  #目錄為Everyone
sudo chmod -R 777 /xxx  #目錄以及子文件全部為Everyone

  輸入法管理器與輸入法安裝,我這裡選擇iBus(因為符合國人的操作習慣,設置也比較人性化點點,同時內置拼音。但是不能和PC的國產輸入法比較。其實還有fcitx輸入法管理器)

sudo apt-get install ibus ibus-pinyin

配置開機自動啟動方面使用,預設下每次開機需要手動啟動。

#添加自啟動腳本
cd /home/pi
cd .config
mkdir autostart
cd autostart
#添加腳本文件(可以寫入多個腳本文件,用於配置不同解析度連接)
nano input.desktop
#添加腳本
[Desktop Entry]
Type=Application
Name=InputManger
Exec=ibus-daemon --xim
StartupNotify=false
#Ctrl + O、Enter、Ctrl + X #保存退出

  設置桌面樣式

  永久掛載新分區

  

df -h #查看未使用的分區
sudo umount /dev/xxxx #對應分區卸載,記住你的這個分區路徑
sudo mkdir /xxx #創建自定義的掛載位置,將卸載的分區掛載到自己的目錄

#臨時掛載
sudo mount /dev/xxx /xxx #將分區掛載到自己創建的目錄

#永久掛載
sudo nano /etc/fstab #進入系統的磁碟分區的配置表,系統開機會進行分區映射
#添加一行,將分區掛載到自定義的位置
======================================================
/dev/xxx  /xxx    auto    defaults          0       0
======================================================
#Ctrl + O、Enter、Ctrl + X #保存退出

  製作系統鏡像

  鏡像是個非常方便的東西,可以將系統打包。如果運行的系統損壞或不想要了,可以用備份的鏡像文件將其恢復。通過Win32DiskImager進行備份和還原,平時備份可以將鏡像壓縮,可以節約空間。(快速下載-移入查看密碼

  第一次如何恢復根分區容量

#運行命令終端
sudo raspi-config #進入系統配置

  2.遠程桌面的安裝

  最新的Raspbian內置VNCServer工具,所以就不需要在單獨安裝VNCServer工具了,上一步已經啟動的VNC功能,同時需要註意的是用戶名,密碼。VNC可以添加多個不同名稱的埠。

 

#添加自啟動腳本
cd /home/pi
cd .config
mkdir autostart
cd autostart
#添加腳本文件(可以寫入多個腳本文件,用於配置不同解析度連接)
nano vnc.desktop #腳本名稱
#添加腳本
[Desktop Entry]
Type=Application
Name=VNC #名稱
Exec=vncserver -geometry 1920x1080 :1 #設置解析度1920x1080,以及VNC埠為1
StartupNotify=false
#Ctrl + O、Enter、Ctrl + X #保存退出

使用VNCViewer進行遠程連接,VNCViewer支持多平臺版本可以到官網下載。(快速下載-移入查看密碼

3.安裝NodeJS

  在NodeJS官網下載安裝包或線上安裝,註意安裝ARM版本。(快速下載-移入查看密碼

#命令終端
cd /home/pi

#離線安裝
#拷入node-v6.9.1-linux-armv7l.tar.gz 到 /home/pi

#線上安裝
wget https://nodejs.org/dist/v6.9.1/node-v6.9.1-linux-armv7l.tar.gz

#命令終端
tar zxvf node-v6.9.1-linux-armv7l.tar.gz   
sudo mv node-v6.9.1-linux-armv7l  /usr/local/bin
sudo ln /usr/local/bin/node-v6.9.1-linux-armv7l/bin/node /usr/local/bin/node
sudo ln -s /usr/local/bin/node-v6.9.1-linux-armv7l/lib/node_modules/npm/bin/npm /usr/local/bin/npm

NodeJSARM版NPM存在路徑問題,需要以下方式解決。

嘗試npm -v發現出錯了,原因是路徑問題,修改相對路徑(註意查看腳本中的相對路徑),跳轉到/usr/local/bin目錄。
打開文本npm
貼上修改後的文件內容:
#!/bin/sh
(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix

basedir=$(dirname `readlink -f $0`)
cd $basedir

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac

NODE_EXE="$basedir/node.exe"
if ! [ -x "$NODE_EXE" ]; then
  NODE_EXE=node
fi

NPM_CLI_JS="$basedir/node-v6.9.1-linux-armv7l/lib/node_modules/npm/bin/npm-cli.js"
if ! [ -x "$NPM_CLI_JS" ]; then
  NPM_CLI_JS=npm-cli.js
fi

case `uname` in
  *CYGWIN*)
    NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`
    NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node-v6.9.1-linux-armv7l/lib/node_modules/npm/bin/npm-cli.js"
    if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then
      NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"
    fi
    ;;
esac

"$NODE_EXE" "$NPM_CLI_JS" "$@"

4.安裝Net環境

  這裡使用的是Mono,而非Net Core,因為Net Core坑太多了,不適合跨平臺移植軟體。還有做跨平臺軟體需要註意外部文件路徑問題,通過 Path.DirectorySeparatorChar 獲取平臺路徑特征與通過 AppDomain.CurrentDomain.BaseDirectory 獲取運行程式的絕對根目錄,同時,win32的類庫目前是不能被Mono運行的。Net的類庫是完全可運行,需要註意的是Windows下有些原生類庫在Mono裡面沒有集成,需要設置生成時複製到輸出目錄。(快速下載-移入查看密碼

  首先下載Mono官方的源代碼,然後在樹莓派上進行編譯,編譯時間過長,清耐心等待數小時。安裝過程中會出現依賴的軟體未安裝,導致安裝停止,需要一步一步的進行安裝依賴通過“sudo apt-get xxx”或“sudo apt-get xxx=xxx.xxx.xxx”來解決。

#這裡是案例,可以下載最新版進行編譯,安裝
#下載官方源碼包
wget http://download.mono-project.com/sources/mono/mono-4.0.1.44.tar.bz2
#解壓
tar -xvf mono-4.0.1.44.tar.bz2
#切換路徑
cd mono-4.0.1
#配置編譯安裝路徑
./configure --prefix=/usr/local
#編譯
make
#安裝
make install

#註意安裝libgdiplus類庫,方便圖像程式的運行,如:WinForm等圖像庫相關的軟體的使用

耐心等待數小時後,安裝完成,可以用C#寫個HelloWorld試試還有WinForm等,看看驚喜。

如果還需要AspNet程式的運行,則需要安裝 Jexus Web伺服器,用於支持AspNet程式的運行。以下是Jexus安裝。(快速下載-移入查看密碼

#安裝
cd /tmp
wget linuxdot.net/down/jexus-5.6.5.tar.gz
tar -zxvf jexus-5.6.5.tar.gz 
cd jexus-5.6.5
sudo ./install 

#更新
cd /tmp
sudo /usr/jexus/jws stop
wget http://linuxdot.net/down/jws-v5.6.4-arm.zip
tar -zxvf jws-v5.6.4-arm.zip
cd jws-v5.6.4-arm
sudo ./upgrade
sudo /usr/jexus/jws regsvr
sudo /usr/jexus/jws restart

===測試/var/www/default/index.aspx=======
<%@Page Language="C#"%>
<%=DateTime.Now.ToString()%> 
==============================

#添加自啟動腳本
cd /home/pi
cd .config
mkdir autostart
cd autostart
#添加腳本文件(可以寫入多個腳本文件,用於配置不同解析度連接)
nano webserver.desktop
#添加腳本
[Desktop Entry]
Type=Application
Name=WebServer
Exec=sudo /usr/jexus/jws start
StartupNotify=false
#Ctrl + O、Enter、Ctrl + X #保存退出

Jexus的全局配置在/usr/jexus/jws.conf,可以通過“sudo nano /usr/jexus/jws.conf”配置。

SiteLogDir=log #指定日誌目錄
SiteConfigDir=siteconf #指定每個站點的配置信息位置

httpd.processes=1          #: 1-8. (0 is auto) 這是Jexus伺服器使用的進程數量,建議每1核CPU用一個進程,最多可設8個進程,如果設置大於1,需要啟動獨立的會話服務。否則出現Session丟失問題
httpd.MaxTotalMemory=0     #: In megabytes. Set to 0 for auto. 允許使用的最大記憶體,0是自動分配
httpd.MaxCpuTime=2400      #: In seconds. Set to 0 for unlimited. 允許CPU執行的最長時間,如果超時系統會終端當前運行的線程,0是不限制。
httpd.MaxConnPerIp=0       #: 0 is unlimited 單個IP的最大併發連接數
# httpd.User=www-data #工作進程以什麼用戶身份和對應許可權工作,預設為root
# php-fcgi.set=/usr/bin/php-cgi,6 #如果需要Jexus同時充當PHP FastCGI伺服器,這一句就是fast-cgi設置,分兩個部分,逗號前為php-cgi這個文件的路徑,逗號後是php進程數

# CertificateFile=/xxxx/xx.crt #SS證書
# CertificateKeyFile=/xxxx/xx.key #SSL證書秘鑰文件
# SSL_Ciphers=RC4-MD5 #使用的加密套件類型



# Runtime=v2.0.50727

Jexus的每個站點的配置/usr/jexus/siteconf/xxx,例如配置default:“sudo nano /usr/jexus/siteconf/default”配置,可以配置多個,通過“sudo nano /usr/jexus/siteconf/xxx”進行添加其他網站配置。

######################
# Web Site: Default 
########################################

port=80 #網站的埠號
root=/ /home/pi/Project/www/default #網站的根目錄
hosts=*    #OR your.com,*.your.com #允許訪問功能變數名稱


# addr=0.0.0.0 #網站允許訪問本地IP
# CheckQuery=false #查詢檢查
NoLog=true #不開啟日誌
# NoFile=/index.aspx  #預設的主頁
Keep_Alive=false #是否保持長連接
UseGZIP=true #是否啟動GZIP壓縮
# UseHttps=true #網站是否使用SSL安全訪問
# DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24 #禁止訪問的IP限制
# AllowFrom=192.168.*.* #允許訪問的IP限制
# DenyDirs=~/cgi, ~/upfiles #禁止訪問的目錄
# indexes=myindex.aspx #首頁文件名,可以寫多個,用英文逗號分開(可以不填。因為JWS系統含有常用首頁名)
# rewrite=^/.+?\.(asp|php|cgi|pl|sh)$ /index.aspx #URL重寫是指WEB伺服器將訪問者的請求URL路徑資源按指定的匹配規則解釋和匹配為另外的一個真實RUL路徑資源。
# reproxy=/bbs/ http://192.168.1.112/bbs/ #反向代理功能,當用戶訪問/abc/時,jexus就會隨機選擇一臺伺服器進行訪問,達到負載均衡或伺服器集群的效果。

# Jexus php fastcgi address is '/var/run/jexus/phpsvr'
#######################################################
# fastcgi.add=php|socket:/var/run/jexus/phpsvr

# php-fpm listen address is '127.0.0.1:9000'
############################################
# fastcgi.add=php|tcp:127.0.0.1:9000

以上是基本安裝方式,隨著版本更新,可能存在出入。同時命令中的註釋需要去掉。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 從網路上下載到的源碼包, 最常見的是 .tar.gz 包, 還有一部分是 .tar.bz2包要解壓很簡單 :.tar.gz 格式解壓命令為 tar -zxvpf xx.tar.gz.tar.bz2 格式解壓命令為 tar -jxvpf xx.tar.bz2 //p參數可以保留原文件許可權(很重要) ...
  • 本文地址 分享提綱: 1. svn 不常見單有用的命令 2. svn查看切換用戶 1. svn自己總結的一些不常見,但有用的命令 1)【導出svn不帶版本代碼】導出不帶svn版本控制的代碼到本地的 localdir下: svn export https://github.com/wozhuzaisi ...
  • 更改SSH服務端遠程登錄的配置 windows服務端的預設遠程管理埠是3389,管理員用戶是administrator,普通用戶是guest。Linux的管理用戶是root,普通用戶預設有很多個,遠程連接預設埠是22。 修改配置文件/etc/ssh/sshd_config,13行Port 22(... ...
  • 一、NFS概念: 透過網路,讓不同的主機能“共用”文件。通過NFS,用戶和程式可以像訪問本地文件一樣訪問遠端系統上的文件。 二、版本: 共三個版本,NFSv2,NFSv3,NFSv4(包含4.0和4.1)。其中NFSv2和NFSv3由Sun公司起草。NFS4.0主要由NetApp。 三、版本特點 V ...
  • [joy@localhost ~]$ java -version openjdk version "1.8.0_91" OpenJDK Runtime Environment (build 1.8.0_91-b14)OpenJDK 64-Bit Server VM (build 25.91-b14, ...
  • Linux通過系統硬體定時器以規律的間隔(由HZ度量)產生定時器中斷,每次中斷使得一個內核計數器的值jiffies累加,因此這個jiffies就記錄了系統啟動開始的時間流逝,然後內核據此實現軟體定時器和延時。 ...
  • 參考:https://wiki.archlinux.org/index.php/Installation_guide_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 安裝準備 連接到網際網路 守護進程 dhcpcd 已被預設啟用來探測有線設備, 並會嘗試連接。如需驗證網路... ...
  • 中斷(interrupt)是指CPU在執行程式的過程中,出現了某些突發事件急待處理,CPU必須暫停執行當前的程式,轉去處理突發事件,處理完畢後CPU又返回原程式被中斷的位置並繼續執行。中斷服務程式的執行並不存在於進程上下文,因此,要求中斷服務程式的時間儘可能地短。因此,Linux在中斷處理中引入了頂... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...