Hi Franklin,
So this is combining two different things. Keep in mind send_global sends that same message to every connected process to that global comet pool, which means you're very likely to get more than one response. In the case of the "Unhandled Message", that's happening where the websocket process is receiving an unknown message while sitting in a "waiting for something to happen" state. If there X processes connected to that comet pool, you're going to get X response messages back.
If you need more of a one-off-centralized process to respond, you might want to spin up a gen_server to handle it.
You can then start or get a pid of a process by doing
{ok, Pid} = process_registry_handler:get_pid(Key, Fun).
Then, if a process named 'Key' is running, it will return the Pid of that process, and if the process named 'Key' is not running, it will start the process with the specified Fun.