Skip to content

Haxe Client

You're encouraged to use this client along with any Haxe Game Engine, such as: OpenFL, Kha, HaxeFlixel, Heaps, HaxePunk, etc.

Installation

Install the latest version from the git repository:

haxelib git colyseus https://github.com/colyseus/colyseus-hx.git

Usage

Connecting to server:

import io.colyseus.Client;
import io.colyseus.Room;

var client = new Client('ws://localhost:2567');

Joining to a room:

var room = client.join("room_name");
room.onJoin = function() {
    trace(client.id + " joined " + room.name);
}

Listening to room state change:

Listening to entities being added/removed from the room:

room.listen("entities/:id", function (change) {
    trace("new entity " +  change.path.id + " => " + change.value);
});

Listening to entity attributes being added/replaced/removed:

room.listen("entities/:id/:attribute", function (change) {
    trace("entity " + change.path.id + " changed attribute " + change.path.attribute + " to " + change.value);
});

Other room events

Room state has been updated:

room.onStateChange = function(state) {
  // full new state avaialble on 'state' variable
}

Message broadcasted from server or directly to this client:

room.onMessage = function (message) {
  trace(client.id + " received on " + room.name + ": " + message);
}

Server error occurred:

room.onError = function() {
  trace(client.id + " couldn't join " + room.name);
}

The client left the room:

room.onLeave = function() {
  trace(client.id + " left " + room.name);
}

Running the demo project

The example project can be compiled to html5, neko, cpp, ios, etc.

It uses the state_handler room from the colyseus-examples project, which you can find here.

Compiling the demo project to html5

git clone https://github.com/colyseus/colyseus-hx.git
cd colyseus-hx/example/NyanCat
lime build project.xml html5

You can see the demo project live here.

ios target caveats

You may need to manually apply this patch in order to compile for iOS: HaxeFoundation/hxcpp@5f63d23

More info: http://community.openfl.org/t/solved-system-not-available-on-ios-with-xcode-9-0/9683?source_topic_id=10046