事件處理

處理事件處理程序

ProudNet 的事件處理是基於委託模式。

客戶端繼承並實作Proud.INetClientEvent類,伺服器繼承並實作Proud.INetServerEvent類別。 建立已實作類別的實例後,必須透過伺服器上的 Proud.CNetServer.SetEventSink 和用戶端上的 Proud.CNetClient.SetEventSink 連線它。

class MyEvent:public INetClientEvent
{
    virtual void OnJoinServerComplete(...) override 
    { 
        // my event handler
        ...
    }
}
 
MyEvent m_myEvent;
myNetServer->SetEventSink(&m_myEvent); 

如果您使用支援C++11的編譯器,

您可以使用 lambda 表達式而不是繼承上面的類別來進行更簡潔的程式設計。

myNetServer->OnJoinServerComplete = [...](...) 
    {
        // my event handler
        ...
    };

有關何時透過上述過程接收事件回呼的信息,請參閱了解主循環

關聯客戶端上的事件處理程序

伺服器中可能發生的典型事件包括“收到客戶端的連線”,客戶端中發生的典型事件包括“與伺服器建立連線”和“P2P成員參與”。

Last updated