ServerLoop
ServerLoop<ClientData>
package neko-net
Available on macro, nekoThis class enables you to quickly create a custom server that can serve several clients in parallel. This server is using a single thread and process so the server itself processing is not parallel. Non-blocking sockets are used to ensure that a slow client does not block the others.
Constructor
new (?newData:Socket ‑> ClientData )
Creates a server instance. The newData
methods must return the data associated with the Client.
Variables
clients:List<ClientData>
listenCount:Int
This is the value of number client requests that the server socket listen for. By default this number is 10 but can be increased for servers supporting a large number of simultaneous requests.
updateTime:Float
See update
.
Methods
clientDisconnected (d:ClientData ):Void
This method is called after a client has been disconnected.
clientWrite (s:Socket, buf:Bytes, pos:Int, len:Int):Void
This method can be used instead of writing directly to the socket. It ensures that all the data is correctly sent. If an error occurs while sending the data, no exception will occur but the client will be gracefully disconnected.
closeConnection (s:Socket):Bool
Closes the client connection and removes it from the client List.
onError (e:Dynamic):Void
Called when an error occured. This enable you to log the error somewhere. By default the error is displayed using trace
.
processClientData (d:ClientData, buf:Bytes, bufpos:Int, buflen:Int):Int
This method is called when some data has been read into a Client buffer. If the data can be handled, then you can return the number of bytes handled that needs to be removed from the buffer. It the data can't be handled (some part of the message is missing for example), returns 0.
run (host:Host, port:Int):Void
Run the server. This function should never return.
update ():Void
The update
method is called after each socket event has been processed or when updateTime
has been reached. It can be used to perform time-regular tasks such as pings. By default updateTime
is set to one second.
Static variables
static DEFAULT_BUFSIZE:Int = 128
Each client has an associated buffer. This is the initial buffer size which is set to 128 bytes by default.
static MAX_BUFSIZE:Int = (1 << 16)
Each client has an associated buffer. This is the maximum buffer size which is set to 64K by default. When that size is reached and some data can't be processed, the client is disconnected.
© 2005–2016 Haxe Foundation
Licensed under a MIT license.
http://api.haxe.org/neko/net/ServerLoop.html