Add message sending to clients
This commit is contained in:
@@ -153,6 +153,9 @@ bool ENetDriver::PopEvent(NetworkEvent* eventPtr)
|
||||
|
||||
if(result > 0)
|
||||
{
|
||||
// Copy sender data
|
||||
eventPtr->Sender = NetworkConnection(enet_peer_get_id(event.peer));
|
||||
|
||||
switch(event.type)
|
||||
{
|
||||
case ENET_EVENT_TYPE_CONNECT:
|
||||
@@ -180,8 +183,6 @@ bool ENetDriver::PopEvent(NetworkEvent* eventPtr)
|
||||
eventPtr->Message = NetworkManager::CreateMessage(eventPtr->HostId);
|
||||
eventPtr->Message.Length = event.packet->dataLength;
|
||||
Memory::CopyItems(eventPtr->Message.Buffer, event.packet->data, event.packet->dataLength);
|
||||
|
||||
// TODO: Copy sender info
|
||||
break;
|
||||
|
||||
default: break;
|
||||
@@ -197,7 +198,15 @@ void ENetDriver::SendMessage(const NetworkChannelType channelType, const Network
|
||||
SendPacketToPeer((ENetPeer*)_peer, channelType, message);
|
||||
}
|
||||
|
||||
void ENetDriver::SendMessage(NetworkChannelType channelType, const NetworkMessage& message, Array<NetworkConnection, HeapAllocation> targets)
|
||||
void ENetDriver::SendMessage(const NetworkChannelType channelType, const NetworkMessage& message, Array<NetworkConnection, HeapAllocation> targets)
|
||||
{
|
||||
// TODO: Send messages
|
||||
for(NetworkConnection connection&& : targets)
|
||||
{
|
||||
ASSERT(_peerMap.ContainsKey(connection));
|
||||
|
||||
ENetPeer* peer = (ENetPeer*)_peerMap.TryGet(connection);
|
||||
ASSERT(peer != nullptr);
|
||||
|
||||
SendPacketToPeer(peer, channelType, message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "Engine/Networking/INetworkDriver.h"
|
||||
#include "Engine/Networking/NetworkConfig.h"
|
||||
|
||||
#include "Engine/Core/Collections/Dictionary.h"
|
||||
#include "Engine/Scripting/ScriptingType.h"
|
||||
|
||||
API_CLASS(Namespace="FlaxEngine.Networking", Sealed) class FLAXENGINE_API ENetDriver : public INetworkDriver
|
||||
@@ -25,6 +26,12 @@ public:
|
||||
void SendMessage(NetworkChannelType channelType, const NetworkMessage& message) override;
|
||||
void SendMessage(NetworkChannelType channelType, const NetworkMessage& message, Array<NetworkConnection, HeapAllocation> targets) override;
|
||||
|
||||
private:
|
||||
bool IsServer() const
|
||||
{
|
||||
return _host != nullptr && _peer == nullptr;
|
||||
}
|
||||
|
||||
private:
|
||||
NetworkConfig _config;
|
||||
void* _host = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user