一日一点RakNet(30)--Interface 2插件

Interface2 插件

 

插件Interface2 概述

        PluginInterface2.h是与RakNet一起工作的一个类接口,提供了一些自动功能,也即在消息到达用户之前,拦截,修改,以及创建消息。插件可以附加到RakPeerInterface或者PacketizedTCP实例上。每一次Receive()被调用,插件都会进行更新。使用这个插件,仅仅需要从基类派生,并且实现想要处理的虚函数。然后通过调用RakPeerInterface::AttachPlugin()方法注册这个插件类即可。

如下列举了一些你在大多数情况下要实现的虚函数:

// 每次检验数据包都会调用Update()函数.

virtual void Update(void);


// 每一个数据包都会调用OnReceive()方法.

// \param[in] packet 返回给用户的数据包(packet)

// \return True 允许游戏或其他的插件得到这个消息,False则不允许。

virtual PluginReceiveResultOnReceive(Packet *packet);


// 因为用户为指定的系统调用了RakPeer::CloseConnection(),连接丢失时,调用这个方法

// \param[in] systemAddress 丢失连接的用户的systemAddress

// \param[in] rakNetGuid 指定系统的guid

// \param[in] lostConnectionReason 连接是如何关闭的,手动,连接丢失,或断开通知

virtual voidOnClosedConnection(SystemAddress systemAddress, RakNetGUID rakNetGUID,PI2_LostConnectionReason lostConnectionReason );


// 得到一个新连接时,调用这个函数。

// \param[in] systemAddress 新连接的地址。

// \param[in] rakNetGuid 指定系统的guid

// \param[in] isIncoming 如果为true, 连接是ID_NEW_INCOMING_CONNECTION,

// 或其他相同情况。

virtual void OnNewConnection(SystemAddresssystemAddress, RakNetGUID rakNetGUID, bool isIncoming);

 

By 北洋小郭

转载请注明出处,切勿用于商业。谢谢!


你可能感兴趣的:(游戏,工作,interface)