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

[wip] Nostale server networking library in Elixir.

License

Notifications You must be signed in to change notification settings

deva-hub/nosprotocol

Repository files navigation

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.

About

[wip] Nostale server networking library in Elixir.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages