如何使用伺服器
定時器循環、RMI、事件處理
您不必在伺服器上每小時呼叫它,但如果您想定期執行某些操作,則需要指定計時器回呼函數、回呼週期以及啟動時傳遞給回呼函數的自訂資料伺服器。
以下是指定它們的位置。
語言 | 定時器回呼函數 | 回呼週期 | 自訂數據 |
---|---|---|---|
C++ | Proud.INetServerEvent.OnTimerCallback | Proud.CStartServerParameter.m_timerCallbackInterval | Proud.CStartServerParameter.m_timerCallbackContext |
C# | Nettention.Proud.NetServer.TickDelegate | Nettention.Proud.StartServerParameter.timerCallbackIntervalMs | - |
獲取各種資訊
從 Server 中,您可以檢索各種訊息,例如客戶端清單、P2P 群組資訊、客戶端 IP 資訊和 ping 時間。
C++ 函數 | C# 函數 | 註釋 |
---|---|---|
Proud.CNetServer.GetClientCount | Nettention.Proud.NativeNetServer.GetClientCount | 獲取連線的客戶端數量。 |
Proud.CNetServer.GetClientHostIDs | Nettention.Proud.NetServer.GetClientHostIDs | 取得已連線客戶端的 HostID 清單。 |
Proud.CNetServer.GetClientInfo | Nettention.Proud.NetServer.GetClientInfo | 使用作為參數給出的 HostID 來獲取有關客戶端的信息。 |
Proud.CNetServer.GetJoinedP2PGroups | - | 取得以參數形式給出的 HostID 的客戶端所屬的所有 p2p 群組。 |
Proud.CNetServer.GetLastUnreliablePingMs | Nettention.Proud.NetServer.GetLastUnreliablePingMs | 傳回最近的 ping 時間(以毫秒為單位)。 |
Proud.CNetServer.GetP2PGroupInfo | Nettention.Proud.NetServer.GetP2PGroupInfo | 檢索有關作為參數給出的 p2p 組的資訊。 |
Proud.CNetServer.GetP2PGroups | - | 取得所有 p2p 組。 |
Proud.CNetServer.GetRecentUnreliablePingMs | Nettention.Proud.NetServer.GetRecentUnreliablePingMs | 傳回最近的 ping 時間(以毫秒為單位)。 |
Proud.CNetServer.GetRemoteIdentifiableLocalAddrs | - | 取得客戶端可以識別的伺服器的監聽連接埠位址。 |
Proud.CNetServer.GetStats | Nettention.Proud.NetServer.GetStats | 取得伺服器狀態資訊。 |
Proud.CNetServer.GetTcpListenerLocalAddr | Nettention.Proud.NetServer.GetTcpListenerLocalAddr | 取得可用於 TCP 通訊的所有本機位址。 |
Proud.CNetServer.GetTimeMs | Nettention.Proud.NetServer.GetTimeMs | 取得目前伺服器時間(以毫秒為單位)。 |
Proud.CNetServer.GetUdpListenerLocalAddrs | - | 取得可用於 UDP 通訊的所有本機位址。 |
Proud.CNetServer.IsConnectedClient | Nettention.Proud.NativeNetServer.IsConnectedClient | 傳回以參數形式給出的 HostID 的客戶端是否已連線。 |
伺服器之間通信
當伺服器以相互分工的方式運作時,需要建立連線以在各個伺服器之間進行通訊。 此時,您可以使用P2P群組輕鬆設定伺服器之間的通訊。
留下一台Farm server。 伺服器電腦所在的 LAN 群組稱為server farm。
所有其他伺服器在連接到場伺服器的Farm Client端之間執行 P2P 通訊。
每個場客戶端或伺服器進程都可以直接相互通信,無論它是伺服器還是客戶端。 隨機形式的網狀通訊是可能的,並且可以建立它們之間的自由依賴關係。
伺服器間通訊建議使用net_main,同時也要考慮通訊的message_length。
⬅️ 返回
Last updated