跳到主要內容

精選

遊戲伺服器2025年初架設與研究part11-Websocket與Unity的登入+聊天室精簡版

 那先前使用Websocket的內容經過一段時間研究 也算是有了一些進展 並且先前也有人對於websocket那篇筆記一次講的內容有點太多,會不好理解 導致可能中途就遭遇了一些BUG比較難解決的 那這次就把相關的內容進行了一些精簡 讓大家可以更快速的架設好websocket的內容 當然這邊也可以當作是不同的使用方式 隨著學習各種不同的資訊,也能更清楚地理解這些其實是不同的使用方式。 因此,這方面完全可以多學幾種,以便因應各種不同的情況。 首先是 Unity 專案的準備 我們必須把常用的 Websocket 插件準備好(Unity) https://github.com/endel/NativeWebSocket 這是較多人使用的 Websocket 插件 可以根據Github那邊寫的資訊進行操作 匯入 到Unity專案內 那我這邊也直接提供方式 首先在你的Unity專案中,上方的選單選擇Window 底下選到 Package Manager 打開Package Manager 點選有URL的選項( Install package from git URL ) 接著請在這個URL框內輸入對應的內容 也就是 https://github.com/endel/NativeWebSocket.git#upm 輸入好之後就點擊最右邊的install安裝就好了 安裝好會如圖這樣我們可以看到 Native WebSockets 插件會在這個位置 如果需要更新,可以在右邊的選單點Update即可 這樣在Unity內就可以使用Websocket相關的語法了 接著我們回到伺服器的地方,也就是我們的 Ubuntu server 首先確保在虛擬環境當中進行安裝 websocket 插件 簡單的確認方式就是看現在輸入的位置前方有無 (venv) 確認好之後可以進行安裝pip install websockets 接著請在想要執行的位置新增一個python檔案(.py) 我這邊是在自己電腦的python專案內新增了一個python檔案main.py 內容如下 import asyncio import websockets import json co...

遊戲伺服器2025年初架設與研究part6_1伺服器指令筆記-指令part2連線與延遲相關

 這邊是更新一下新使用的指令筆記


後來考慮了一下還是決定分成不同文章發布


某方面也可以判斷一部分使用指令的先後順序

當然這塊會根據自己操作習慣有所不同,也可以根據關鍵字來進行查找


首先幾個可能常用到的,這是怕自己忘了自己Nginx設置的設定檔的名字,可以這樣搜尋

ls /etc/nginx/sites-available/

這是對應我們之前在這個資料夾底下用sano創建的設定檔,不小心忘記可以這樣找
根據列出來的檔名,你就可以簡單使用
sudo nano /etc/nginx/sites-available/flask_project
來編輯設定檔,當然最後的檔名請打自己的

啟用Nginx站點需要使用以下的指令,這邊是重複的,方便查找就一併提供
sudo ln -s /etc/nginx/sites-available/flask_project /etc/nginx/sites-enabled/
sudo systemctl reload nginx
前面的是建立連結,讓我們寫好的設定檔可以連結到nginx真正執行的地方sites-enabled
執行完我們用後面的指令就可以讓nginx重新讀取,這樣就能生效了
sudo nginx -t
這邊也是記得要使用這個測試一下是否正常運作

另外補充如果要讓站點暫時關閉
可以使用以下這個指令
sudo unlink /etc/nginx/sites-enabled/flask_project
這樣就會關閉了,並且設定檔依然保留在sites-available之中
隨時可以去編輯或是用先前的指令重新啟動


那接下來提供幾個在檢查固定IP並且測試伺服器相關的延遲會使用到的指令
包含CDN檢查等等,DNS確認
那這邊的範例都會以使用Pppoe來進行固定IP連線當作基礎
因為根據查到的資料來看似乎多半都是這樣使用,當然也有固定IP透過自動取得IP的,那個可能就要查其它資料了,這邊基礎是以使用pppoe來固定IP連線的
首先基礎的
ip a
這個列出目前網卡建立的連線,可能會有內網或是外網等等IP與DNS資訊
接下來是檢查我們pppoe連線,這可以看到我們使用的帳號,並且依些細節參數設定
sudo nano /etc/ppp/peers/dsl-provider
也可以從這邊看到是使用哪一張網卡,並且這個設定檔是透過先前使用指令自動生成的
例如persist就表示會斷線自動重連

透過以下這個可以簡單的列出目前連線,例如常見的pppoe連線會顯示ppp0
ip link
至於判斷固定ip是否有拿到正確的ip則是看先前ip a顯示的資訊就能看出來


不確定連線問題的時候可以透過以下這個指令查看系統log
journalctl -b | grep ppp
不過內容可能會非常多,不好判斷


確認連線狀態,檢查具體的連線狀態
systemctl status networking


假設有安裝NetworkManager,則是從另一個地方檢查
systemctl status NetworkManager


如果想確認重開機是否會自動連線
cat /etc/network/interfaces
從這邊檢查,例如auto所執行的相關設定
並且假設pppoe的連線設定有設定上
應該能看到一行# by pppoeconf


以下這個也是顯示系統針對ppp連線的log,有時候可以看到進行了很多次連線才終於連線成功
sudo grep pppd /var/log/syslog


檢查DNS-連接方
nslookup 自己的網域名
通常在這邊看可以看到受到Cloudflare轉發的IP位置


查看網卡設定的DNS
resolvectl status
這邊可以看到自己設定的DNS server


接下來是常見的檢查延遲指令
ping -c 5 google.com
透過ping丟給google.com來看具體的延遲數值


接下來為了檢查各個節點產生的延遲
需要安裝traceroute  
sudo apt install traceroute  

接下來就可以使用以下的指令進行完整的站點檢查延遲
traceroute google.com
當然透過伺服器打這些指令只能測單方向,可能會不夠準確
所以我們可以回到另一台電腦(不在內網內,避免任何影響到測試的可能)
例如windows系統,打開cmd
輸入以下的指令測試,當然這是已經確保你的伺服器正確架設,並且網域也設定正確
tracert 你的網域
然後等它跑完,就能看整個過程,還有具體高延遲出現在哪裡

另外似乎也可以使用瀏覽器進行簡單的測試
https://網域名稱/cdn-cgi/trace
這邊也可以顯示出主要使用的CDN節點,例如中華電信的連線檢查出來應該就會跑到美國去
然後才能連到你在Cloudflare轉發的伺服器,這邊就能知道高延遲是因為連線被轉到美國去了~


這次就先分享到這邊,主要重點都是在檢測伺服器的網路跟延遲,畢竟這塊也弄了很久(主要就是希望能降低延遲),花了好幾天各種檢查,如果有什麼疑問也可以直接提出來,或是有什麼講錯的歡迎回覆~



 



留言