_send(msgToSend, channel, originator = "") {
    if (channel === null || channel === void 0) channel = this._ioChannels.client;
    if (channel === this._ioChannels.client) {
      msgToSend = this.makeMeAnObject(msgToSend, "payload");
      if (this.hasUibRouter()) {
        if (!msgToSend._uib) msgToSend._uib = {};
        msgToSend._uib.routeId = this.uibrouter_CurrentRoute;
      }
    } else if (channel === this._ioChannels.control) {
      msgToSend = this.makeMeAnObject(msgToSend, "uibuilderCtrl");
      if (!Object.prototype.hasOwnProperty.call(msgToSend, "uibuilderCtrl")) {
        msgToSend.uibuilderCtrl = "manual send";
      }
      msgToSend.from = "client";
      if (this.hasUibRouter()) msgToSend.routeId = this.uibrouter_CurrentRoute;
    }
    msgToSend._socketId = this._socket.id;
    if (originator === "" && this.originator !== "") originator = this.originator;
    if (originator !== "") Object.assign(msgToSend, { _uib: { originator } });
    if (!Object.prototype.hasOwnProperty.call(msgToSend, "topic")) {
      if (this.topic !== void 0 && this.topic !== "") msgToSend.topic = this.topic;
      else {
        if (Object.prototype.hasOwnProperty.call(this, "msg") && Object.prototype.hasOwnProperty.call(this.msg, "topic")) {
          msgToSend.topic = this.msg.topic;
        }
      }
    }
    if (msgToSend._ui) {
      msgToSend._ui.from = "client";
      if (this.hasUibRouter()) msgToSend._ui.routeId = this.uibrouter_CurrentRoute;
    }
    let numMsgs;
    if (channel === this._ioChannels.client) {
      this.set("sentMsg", msgToSend);
      numMsgs = this.set("msgsSent", ++this.msgsSent);
    } else if (channel === this._ioChannels.control) {
      this.set("sentCtrlMsg", msgToSend);
      numMsgs = this.set("msgsSentCtrl", ++this.msgsSentCtrl);
    }
    log("trace", "Uib:_send", " Channel '".concat(channel, "'. Sending msg #").concat(numMsgs), msgToSend)();
    this._socket.emit(channel, msgToSend);
  }
Internal send fn. Send a standard or control msg back to Node-RED via Socket.IO
NR will generally expect the msg to contain a payload topic
@param {object} msgToSend The msg object to send.
@param {string} [channel] The Socket.IO channel to use, must be in self.ioChannels or it will be ignored. Default=uiBuilderClient
@param {string} [originator] A Node-RED node ID to return the message to. Default=''
@private