OpenSource multiplayer and network messaging for CoronaSDK, Moai, Gideros, LÖVE & Defold
Battle-tested and production ready. Handling thousands of CCU (concurrent users), serving hundreds of thousands multiplayer games daily, routing hundreds of messages per second, with months of uptime.
ws
module, read below)Repo includes server code (so you can use your own server) and CoronaSDK/Moai/Gideros/LÖVE client. More clients to come.You can test on my server, credentials are hardcoded in demo project!
Lua code may serve as an example of how LuaSocket library works.
START SERVER
$ nodejs node.js
To make use of the websocket bridge, uncomment wsPort in the config.
If so, make sure to do npm install
as well.
These are useful to serve browser clients. Irrelevant otherwise.
INITIALIZE
hub = noobhub.new({ server = "127.0.0.1"; port = 1337; });
const hub = noobhub.new({ server: '127.0.0.1', port: 2337 });
SUBSCRIBE TO A CHANNEL AND RECEIVE CALLBACKS WHEN NEW JSON MESSAGES ARRIVE
hub:subscribe({
channel = "hello-world";
callback = function(message)
if(message.action == "ping") then
print("Pong!")
end;
end;
});
hub.subscribe({
channel: 'hello-world',
callback: (data) => {
console.log('callback', data);
}
});
SAY SOMETHING TO EVERYBODY ON THE CHANNEL
hub:publish({
message = {
action = "ping",
timestamp = system.getTimer()
}
});
hub.publish({
action: 'ping',
timestamp: Date.now()
});
Simple acceptance test uses Nodejs client to test the server itself:
$ ./run-tests.sh
starting Noobhub server...
NoobHub on :::1337
running tests...
tests ok
If you expect more than 1000 concurrent connections, you should increase limits on your server (max open file descriptors,max TCP/IP connections) and optionally fine-tune your server's TCP/IP stack.To make sure server process stays alive you might want to use tools such as forever.js or supervisord.