Subscribing and receiving events

You can subscribe to predefined and custom events. Predefined events are "connect", "connecting", "event", "disconnect", "reconnect", "reconnecting", "reconnect_attempt", "reconnect_failed", "error". Custom events are programmer defined events that your server will send to your client. You can subscribe to an event by calling a socket’s On function:

manager.Socket.On("login", OnLogin);
manager.Socket.On("new message", OnNewMessage);

An event handler will look like this:

void OnLogin(Socket socket, Packet packet, params object[] args)
  • The socket parameter will be the namespace-socket object that the server sent this event.
  • The packet parameter contains the internal packet data of the event. The packet can be used to access binary data sent by the server, or to use a custom Json parser lib to decode the payload data. More on these later.
  • The args parameter is a variable length array that contains the decoded objects from the packet’s payload data. With the default Json encoder these parameters can be ‘primitive’ types(int, double, string) or list of objects(List<object>) or Dictionary<string, object> for objects.

A message emitted on the server(node.js):

// send a message to the client
socket.emit('message', 'MyNick', 'Msg to the client');

can be caught by the client:

// subscribe to the "message" event
manager.Socket.On("message", OnMessage);

// event handler
void OnMessage(Socket socket, Packet packet, params object[] args)
    // args[0] is the nick of the sender
    // args[1] is the message
    Debug.Log(string.Format("Message from {0}: {1}", args[0], args[1]));

Predefined events

  • "connect": Sent when the namespace opens.
  • "connecting": Sent when the SocketManager start to connect to the server.
  • "event": Sent on custom (programmer defined) events.
  • "disconnect": Sent when the transport disconnects, SocketManager is closed, Socket is closed or when no Pong message received from the server in the given time specified in the handshake data.
  • "reconnect": Sent when the plugin successfully reconnected to the server.
  • "reconnecting": Sent when the plugin will try to reconnect to the server.
  • "reconnect_attempt": Sent when the plugin will try to reconnect to the server.
  • "reconnect_failed": Sent when a reconnect attempt fails to connect to the server and the ReconnectAttempt reaches the options’ ReconnectionAttempts’ value.
  • "error": Sent on server or internal plugin errors. The event’s only argument will be a BestHTTP.SocketIO.Error object.
  • Once: you can subscribe to an event that will be called only once.
// The event handler will be called only once
manager.Socket.Once("connect", OnConnected);
  • Off: you can remove all event subscription, or just only one.
// Removes all event-handlers

// Removes event-handlers from the "connect" event

// Removes the OnConnected event-handler from the "connect" event
manager.Socket.Off("connect", OnConnected);