Commit Graph

86 Commits

Author SHA1 Message Date
Collin Smith
f708c34f42 Reeled in much of the logging to be enabled as needed 2020-07-02 18:27:38 -07:00
Collin Smith
85e5bc95b8 Created Netty TCP implementation of D2GS (see #83) 2020-07-02 16:41:29 -07:00
Collin Smith
70982601c1 Renamed server:netty com.riiablo.net to com.riiablo.onet (old net) 2020-06-30 10:32:27 -07:00
Collin Smith
b47a021679 Moved impl netty code to server:netty module 2020-06-30 10:30:34 -07:00
Collin Smith
0e5bb72045 Implemented additional support for netty d2gs server
Can connect and do most functions as a single player
Multiple connections do not work
2020-06-29 23:44:52 -07:00
Collin Smith
0b66f63251 Added autoRelease param to constructor
Some impls need to cache packets
2020-06-29 21:57:39 -07:00
Collin Smith
cd93d379bd Added note to fix issue regarding the server binding as LAN IP instead of localhost 2020-06-29 21:48:56 -07:00
Collin Smith
a205135c9e Moved cache and packet queues from D2GSPacketProcessor to Server 2020-06-29 19:25:01 -07:00
Collin Smith
0333bdd40a Backporting changes from com.riiablo.server.d2gs to com.riiablo.server.d2gs_test 2020-06-29 00:59:13 -07:00
Collin Smith
e76fe35f49 Changed PacketProcessor references to D2GSPacketProcessor
D2GSPacketProcessor can process the packet type directly
Server will process the ByteBuf into the packet type already and pass it
Moved packet cache and queues fields to D2GSPacketProcessor
Created D2GSPacket to store the flatbuffer table
2020-06-29 00:53:05 -07:00
Collin Smith
1af1fd968e Removed functions from Endpoint.IdResolver
In my use-cases there should be a preexisting struct already
IdResolver should just be an accessor to that struct and not a mutator
2020-06-28 18:49:11 -07:00
Collin Smith
60257b48de Added help command to server CLI 2020-06-28 18:42:51 -07:00
Collin Smith
8feff49a8a Inlined custom IdResolver implementation into Server which wraps Server id manager (set/remove unsupported) 2020-06-28 18:38:47 -07:00
Collin Smith
93d013c304 Work on d2gs implementation as a tcp socket with netty
Created com.riiablo.nnet (new net) package while I figure out a good API
Server performs connection protocol and then propagates other packets to PacketProcessor
2020-06-28 15:49:48 -07:00
Collin Smith
c1add57fb5 Moved experimental netty d2gs package to d2gs_test package 2020-06-27 18:48:49 -07:00
Collin Smith
88b8e7a096 Added sendDisconnectPacket function to D2GS TestClient 2020-06-27 17:06:03 -07:00
Collin Smith
26173a8fd1 Changed to use object's toString method 2020-06-27 17:00:33 -07:00
Collin Smith
278760f913 Renamed sentPacket to sendConnectionPacket 2020-06-27 16:58:32 -07:00
Collin Smith
b2bf16bb1e Implemented basic client disconnection support
Added basic support for automatically detecting inactive channels and performing a client disconnect on them
2020-06-27 16:57:51 -07:00
Collin Smith
70cf9d016a Moved ByteToMessageDecoder to it's own declared class 2020-06-27 16:39:48 -07:00
Collin Smith
e05e9bebc6 Changed disconnect on error to call ChannelHandlerContext#close() 2020-06-27 16:34:08 -07:00
Collin Smith
98521ad40c Formatting change 2020-06-27 16:32:15 -07:00
Collin Smith
65e14b7514 Improved ClientData tuple and removed connectionIds and clientDatas hash maps 2020-06-27 16:28:11 -07:00
Collin Smith
03ae8f103c Added SocketAddress from parameter to packet callbacks
from paramter will be either TCP channel remote address or UDP packet sender
2020-06-27 15:58:25 -07:00
Collin Smith
5f81d4d53a Parameterized ConnectionLimiter max connections 2020-06-27 15:26:11 -07:00
Collin Smith
413ebc8f6c Aggregated client connection data/state into ClientData 2020-06-27 03:04:46 -07:00
Collin Smith
1781e46724 Created experimental Netty impl of a TCP D2GS server
Created experimental Netty impl of a TCP D2GS server
Added salt field to Netty Connection fbs
Created ConnectionState for Connection fbs
2020-06-27 00:30:15 -07:00
Collin Smith
d1270b1a75 Created UnicastEndpoint interface on top of Endpoint
Allows sending a message and letting the Endpoint figure out where it should go
Will only be used for client-side endpoints
2020-06-26 13:53:54 -07:00
Collin Smith
143bfca048 Changed signature of PacketSender functions and prepended InetSocketAddress parameter for target 2020-06-26 13:31:47 -07:00
Collin Smith
ad78346c1e Added salt field to Netty fbs 2020-06-25 19:47:39 -07:00
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