Hey,
I have slightly refactored the client interface to be more symmetric (just pushed). Basically you have a global JS object Module.oscDriver which is just a dictionary from virtual port numbers to OSC “end points”. And end point is again a JS object which responds to receive with a function(addr, data); addr is the sender’s virtual port number (in case one wants to reply), and data is the raw OSC packet in a Uint8Array. If you are writing in JavaScript, you can use the osc.js library that I included, but of course you can use any other library that can encode/decode from Uint8Array.
When the server boots, it registers such an endpoint (default port 57110), so you can send it a packet using Module.oscDriver[57110].receive(<your-port>, <raw-data>).
Are you having a particular client in mind?
Best, .h.h.