运行 google sheet 中的 websocket 不使用 HTML 代码

running websocket in google sheet without using HTML code

我在应用程序脚本中找到了这个针对 Binance websocket 的测试 URL:

我想在不使用 HTML 代码的情况下删除代码 HTML 和 运行 websocket。

我只想使用:

  

function onOpen(e) {
  SpreadsheetApp.getUi()
    .createMenu('BINANCE')
    .addItem('RUN', 'runwebsocket')
    .addToUi();
  
}

到运行 websocket

任何问题的建议。

一种解决方案是将 html javascript 嵌入空白页

index.html

<!DOCTYPE html>
<meta charset="utf-8" />

<head>
  <script language="javascript" type="text/javascript">
    var wsUri = ("wss://stream.binance.com:9443/ws");
  <? var myparam = param(); ?>
  
  function init()  {
    websocket = new WebSocket(wsUri);
    websocket.onopen = function(evt) { onOpen(evt) };
    websocket.onclose = function(evt) { onClose(evt) };
    websocket.onmessage = function(evt) { onMessage(evt) };
    websocket.onerror = function(evt) { onError(evt) };
    nbr=0;
  }

  function onOpen(evt)  {
    doSend(<?= myparam ?>);
  }

  function onClose(evt)  {
  }

  function onMessage(evt)  {
    google.script.run.getJSON( evt.data );
  }

  function onError(evt)  {
  }

  function doSend(message)  {
    websocket.send(message);
  }

  window.addEventListener("load", init, false);
  window.addEventListener("beforeunload", websocket.close, false);
  
  </script>
</head>

<body></body>

</html>

你可以这样吃午饭

function modal() {
  var html = HtmlService
    .createTemplateFromFile("index")
    .evaluate()
    .setWidth(100)
    .setHeight(50);
  SpreadsheetApp.getUi().showModelessDialog(html, 'web socket');
}