function _send(msg, clients) {
        var id = _nextMsgId++,
            result = new $.Deferred();

        // broadcast if there are no specific clients
        clients = clients || getConnectionIds();
        msg.id = id;
        _responseDeferreds[id] = result;
        _transport.send(clients, JSON.stringify(msg));
        return result.promise();
    }
@private
Dispatches a message to the remote protocol handler via the transport.

@param {Object} msg The message to send.
@param {number|Array.<number>} idOrArray ID or IDs of the client(s) that should
    receive the message.
@return {$.Promise} A promise that's fulfilled when the response to the message is received.