How to write custom emitEvent for proessing in socket.io?

I am writing a multi-player game using processing.js, node.js and socket.io.

Question #1:

In the client, I use p5.js to create a class Ball. I want the server to send parameter to create an array using that class (balls.push(new Ball(x, y));), so every client can have a bunch of balls moving on the canvas.

I know I should use socket.io to emit the parameter to the client but i have no clue. Normally the array is created inside the setup function inside p5...so how could socket do that?

Question #2:

How could the client send the mouseX and mouseY to the server? And then how could the server send back others' mouseX and mouseY to every client?

I try to make p5.js into normal js like this:

         (function () {
            "use strict"; 
                function sketchProc(processing) {
                   var p=processing,
                   var ...,
                   var ...;

                   function ball(){...}

                   p.setup=function(){}
                   p.draw=function(){}
                    }

             var canvas = document.getElementById("canvas1"),
                p = new Processing(canvas, sketchProc);

               }());

But i don't know if this helps...

The balls should be passed to the client only in the connection event. That's where node's beauty lies, code sharing.

To create a socket server, you can use either node's native Net module or Socket.io

On the server:

var server = net.createServer();
server.listen(PORT, HOST);
server.on('connection', function(socket) {    
    socket.write({ type: "BallsArray", data: BallsArray });
});

On the client, you use WebSockets with Socket.io:

var client = io.connect('http://localhost:3000');
var BallsArray = null;
client.on('message', function(msg) {
    if(msg.type == "BallsArray")
        BallsArray = msg.data; 
});