Commit Graph

56 Commits

Author SHA1 Message Date
Collin Smith
dac10467fa Changed signatures for packet processing calls from Channel to ChannelHandlerContext 2020-06-25 17:29:20 -07:00
Collin Smith
8a38fd7139 Added Channel field to processPacket callback to retrieve attributes and manage connection 2020-06-25 12:18:44 -07:00
Collin Smith
597ae213c5 Moved netty netcode from :server:netty to :core module 2020-06-25 10:08:00 -07:00
Collin Smith
fbdf50f646 Added additional methods to expose MessageChannel instances of ReliableEndpoint and ReliablePacketController instance of MessageChannel 2020-06-25 01:18:44 -07:00
Collin Smith
cf1fea539f Improved support for reliable UDP
Implemented PacketListener#onPacketTransmitted callback for sending messages and acks
Created PacketListener#onAckProcessed callback for received acks
Documented some unknown code related to copying outgoing bytebuf and prepending some data to it
Todo: add support for fragmented messages
2020-06-25 01:11:24 -07:00
Collin Smith
7b3827823d Added reliable udp packet receiving and partial sending 2020-06-24 22:20:26 -07:00
Collin Smith
bfe71c1031 Moved sequence manipulators to MessageChannel 2020-06-24 22:16:57 -07:00
Collin Smith
e36b832667 Added support for reliable UDP congestion control and packet resending -- no transcieve yet #78 2020-06-24 21:53:45 -07:00
Collin Smith
398f034755 Moved EventLoopGroup shutdown to Application#dispose 2020-06-24 21:48:36 -07:00
Collin Smith
3dc8136462 Moved exit function to catch block and removed sync which was blocking create thread and thus render loop 2020-06-24 20:15:48 -07:00
Collin Smith
8eee5fd8f3 Modified generics with API - endpoint should work with any Object as QoS param 2020-06-24 17:40:30 -07:00
Collin Smith
d328eff4d2 Refactored to send connection packet on main thread instead of through an extra handler attached to the pipeline 2020-06-24 16:29:49 -07:00
Collin Smith
b74e870e9b Abstracted networking further and implemented TCP implementation #78
Deprecated ReliableChannelHandler (succeeded by EndpointedChannelHandler)
Added basic test netty TCP client and server
2020-06-24 15:46:41 -07:00
Collin Smith
b832c89dcc Updated API 2020-06-24 15:27:58 -07:00
Collin Smith
271359cbca Fixed log messages 2020-06-24 15:22:18 -07:00
Collin Smith
725bbe4a01 Modified API slightly to improve extension 2020-06-24 13:43:07 -07:00
Collin Smith
2f066cbd0f Created PacketSender abstraction to send Flatbuffer data using any protocol 2020-06-24 12:19:31 -07:00
Collin Smith
919281e814 Refactored PacketProcessor to com.riiablo.net 2020-06-24 11:35:45 -07:00
Collin Smith
58a576dfc9 TestClient and TestServer now call ReliableEndpoint#update(float) every frame 2020-06-24 01:06:39 -07:00
Collin Smith
165459dd12 Changed delta from long millis to float seconds 2020-06-24 01:05:47 -07:00
Collin Smith
e07e6bd2ba Refactored changed time to delta where appropriate 2020-06-24 00:59:26 -07:00
Collin Smith
1426b87534 Filled in UnreliableOrderedMessageChannel 2020-06-23 21:45:06 -07:00
Collin Smith
53a1a6f117 Removed sequence from PacketProcessor#processPacket and PacketTransceiver#receivePacket interfaces
sequence was not used and should remain encapsulated beneath MessageChannel layer
2020-06-23 21:28:20 -07:00
Collin Smith
53ceea02a8 Added support for acking packets using a received packets header 2020-06-23 21:04:26 -07:00
Collin Smith
185bd6a73d Roughed out ReliablePacketController#sentAck 2020-06-23 20:41:32 -07:00
Collin Smith
c268d69ff9 Added time field 2020-06-23 20:33:05 -07:00
Collin Smith
cc1c43b7e6 Committing basic reliable UDP package 2020-06-23 18:40:59 -07:00
Collin Smith
3a79adcaae Removing previous iteration 2020-06-23 18:40:17 -07:00
Collin Smith
b19d61b8f2 Committing local changes from deprecated netty udp protocol 2020-06-23 18:39:14 -07:00
Collin Smith
fbc4019b23 Removed AckPacket and added writeAck function to SinglePacket 2020-06-22 12:27:11 -07:00
Collin Smith
990910393b Implemented headerSize and fragmentSize fields 2020-06-22 12:03:40 -07:00
Collin Smith
8f0f2b36c6 Fixed unsigned arithmetic 2020-06-22 02:13:14 -07:00
Collin Smith
e831ca09cd Added check to see if fragment packet header was invalid 2020-06-21 20:36:33 -07:00
Collin Smith
7e31a3a5dd Changed error handling style to be log-and-return based 2020-06-21 20:34:21 -07:00
Collin Smith
194fb0817f Adjusted API slightly to help with more common impl 2020-06-21 20:21:53 -07:00
Collin Smith
092a6c23fe Created com.riiablo.net.reliable and partial Java implementation of reliable.io UDP scheme #78 2020-06-21 19:41:08 -07:00
Collin Smith
3f51d1d503 Removed individual handlers for inbound and outbound traffic -- replaced with ReliableChannelHandler 2020-06-20 14:21:25 -07:00
Collin Smith
01888faac6 Implemented ReliableUtil and composite ByteBuf into ReliableChannelHandler
Implemented ReliableUtil and composite ByteBuf into ReliableChannelHandler
ReliableChannelHandler automatically replaces outbound message with composite
Removed size prefixing contract from Packet factory
Added ReliableUtil#createHeader to write data and set writer index passed header
2020-06-20 14:03:27 -07:00
Collin Smith
d672768495 Added finishNettyBuffer 2020-06-20 12:49:17 -07:00
Collin Smith
5c4c06d47e Created setContentSize method to support composite buffers
Created setContentSize method to support composite buffers
Removed UDP header fields from Netty fbs table
2020-06-20 12:47:31 -07:00
Collin Smith
26aebd5183 Created ReliableUtil class with utility methods to set and get header data encoded within a reliable UDP packet outside of fbs 2020-06-20 02:01:05 -07:00
Collin Smith
a8fe6bc732 Removed Header table from fbs and inlined fields within the Netty table 2020-06-20 00:21:04 -07:00
Collin Smith
510342e232 Implemented some basic reliable udp logic
Seq should increment and wrap around at 0xFFFF
Added special case for ack < 0 (init first packet)
Added netty packet creation functions to ReliableChannelHandler
Header creation is difficult because I can't mutate existing packets easily -- experimenting
2020-06-18 20:46:57 -07:00
Collin Smith
2b6d06f330 Rolled Client debugging outbound packet data logging into ReliableChannelHandler 2020-06-17 22:57:40 -07:00
Collin Smith
fb7377980b Created ReliableChannelHandler to try and accomplish ReliableInboundHandler and ReliableOutboundHandler with one ChannelHandler
Replaced implementations with ReliableChannelHandler
Removed ReliableInboundHandler and ReliableOutboundHandler
Removed propagation for caught exceptions within ReliableChannelHandler impls
2020-06-17 22:29:14 -07:00
Collin Smith
f1df48b468 Changed ServerHandler to be a subclass of PacketHandler -- replaced anon PacketHandler with ServerHandler impl 2020-06-17 22:02:33 -07:00
Collin Smith
573f4d1b4b Added reliable ChannelHandlers to server ChannelPipeline 2020-06-17 21:56:00 -07:00
Collin Smith
fc66d120d7 Filled in some of anonymous PacketHandler within Main to process some packet types 2020-06-17 21:54:08 -07:00
Collin Smith
02a6cd4b56 Created PacketHandler class to help with decoding fbs packet objects from netty channels 2020-06-17 21:33:34 -07:00
Collin Smith
ef94883dd7 Refactored name scheme 2020-06-17 21:16:04 -07:00