跳到主要內容

精選

遊戲伺服器2025年初架設與研究part14收送封包的Json格式與Unity內建JsonUtility相關的問題(支援性)

 上次針對如何在Unity的新版TMP Text中使用中文字 而這次則是來分享一下先前有提過的 Json文字轉換 的問題 首先我們知道Unity內建的Json轉換是 JsonUtility JsonUtility 在使用上有一些限制在 算是有優點也有缺點 優點是畢竟是寫在Unity底層的, 效能 比較好 如果功能沒有問題的情況下,可以比額外安裝的Json轉換插件效能要好上不少 甚至有些插件能差兩倍以上的執行效能 不過自然也是有缺點 就是它有不少 不支援 的型別 很多時候常常讓伺服器與遊戲端的人打架的其中一個原因,伺服器表示資料明明就有送,遊戲端則是表示我沒收到(伺服器傳的Json格式轉不出來的種種問題或是可能性) 詳細可以參考Unity的官方文件 https://docs.unity3d.com/6000.1/Documentation/Manual/json-serialization.html 那我這邊也把一些重點特別拿出來講 首先我們先前在聊天訊息回傳的時候,就已經有用到基本的功能 可以先看到我們伺服器端的程式碼(Python) 如以上這語法 這是我們先前使用的方式 那這邊因為是跟先前相同的 相同的部分我就用截圖來顯示(詳細程式碼在Part11有可以複製) 可以看到我們主要回傳的結構 json.dumps({"type": "chat", "message": msg}) 這段就是把後面的內容透過Json轉換成Json字串後傳給使用者(遊戲端) 而我們Unity接收的位置是這樣寫的 ServerPacket packet = JsonUtility.FromJson<ServerPacket>(json); 這行就是我們今天 主要 想討論的地方 並且假設大家想要使用額外安裝的Json套件,也幾乎就是替換這行就能達到想要的效果 接下來我們看到ServerPacket這個class 這邊可以看到關鍵是我們的class要 可序列化 也就是說要加上 [Serializable] 那雖然說是只要加上可序列化,就能轉換 但是也是因為這樣,有很多不能被Unity內建支援的型別,則會轉換不出來 而...

遊戲伺服器2025年初架設與研究part2-SSH連線細節/防火牆設置

 延續上次分享的內容

首先目前連接伺服器也是使用SSH連線來進行的

不過這邊也要提醒一下,如果還沒開啟對應port之前先別把其他的配件的線給移除

因為啟用防火牆之後,你可能就會斷線無法連線了

所以記得先從防火牆設置中把對應的port給開啟,當然預設的SSH port是22

如果沒有特別調整的話就是22

當然這塊要注意一下,SSH風險是很高的,所以直接開22port給全部連線多少還是有些風險的

這邊也是提一下幾個調整方案,可以自行選擇如何處理

首先就是把SSH的port手動轉移到別的port,然後防火牆開別的port

另一個則是使用直接指定IP的方式,例如你知道你一定從什麼IP進行SSH連線,就開指定IP就好

當然也可以搭配使用,也可以針對區網開啟(例如開192.168.1.0/24)

這邊主要就是看大家自己想要嚴格到何種程度

畢竟這也會影響到自己如果想要能用SSH的環境該是如何的

如果自己使用就是常常得從外網連接(例如是透過手機5G連線)那IP就很難指定,不過為了避免風險,其他的設置可能就要嚴格一些了~


那SSH連線使用的工具,畢竟一般使用的電腦是Windows,如果只有最陽春的需求,那系統內鍵的cmd也是勉強可以用的

直接在cmd上面輸入ssh username@伺服器IP地址

之後輸入密碼


就可以進行連線了(前提是先前防火牆等等的設置都要處理好/包含網路)

而這邊也分享幾個我查詢的時候考慮的其他工具

因為各自都有其優缺點,可以自行搜尋這些關鍵字找自己想要的~

1.PuTTY

2.MobaXterm

3.Termius

不過不管哪一種,都會比原始的cmd要好用無數倍,所以可以考慮挑一個來連SSH

哪這邊也提一個查詢資料過程中有查到的一個狀況,就是假設你安裝的系統是有安裝圖形化介面,那這邊可能會需要以下兩種方式,來讓顯示正常

1.螢幕孔必須有螢幕線插著,且要接著螢幕

2.使用虛擬顯示器等等工具(這邊包含很多種名稱,例如Edid模擬器/顯示器欺騙卡/顯示卡假負載)

主要功用都是確保輸出有圖形化介面的時候能正確顯示

當然如果只裝了預設的Ubuntu server是沒有圖形化介面,所以不是必須的,所以只是提醒一下如果有裝圖形化介面,可能要注意一下這個問題

那我這邊是沒有裝過,不過當初是有查一下怎麼安裝

例如sudo apt install ubuntu-desktop

如果有執行過,而且介面上明顯會有不同,看起來不像單純的cmd應該就是裝了圖形化介面

那這篇主要就是補充一下一些設定跟輔助的操作,這樣應該就能順利的使用SSH遠端操作伺服器了~


如果還有疑問也可以直接發問,或是哪裡有錯也請直接指正~







留言