Skip to content
This repository has been archived by the owner on Nov 12, 2020. It is now read-only.

Latest commit

 

History

History
22 lines (18 loc) · 1.12 KB

README.md

File metadata and controls

22 lines (18 loc) · 1.12 KB

NosProtocol

NosProtocol is a processless connection data structure and functions for the NosTale SE protocol.

Usage

To establish a open a connection, use open/3. This will return an opaque data structure that represents the connection to the server. The connection is a first opened in the user land and the socket is internaly managed by the library in active mode (with active: :once). This means that TCP/SSL messages will be delivered to the process that started the connection.

The process that owns the connection is responsible for receiving the messages (for example, a GenServer is responsible for defining handle_info/2). However, NosProtocol.Login or NosProtocol.World are responsible for the packet deserialisation with the stream/2 function. This function takes the connection and a term and returns :unknown if the term is not a TCP/SSL message belonging to the connection. If the term is a message for the connection, then a response and a new connection are returned. It's important to store the new returned connection data structure over the old one since the connection is an immutable data structure.