使用websocket获取日志,并将日志自动滚动到底部

1. 设置日志文件显示

<li>标签中为每一行日志内容显示

 <div class="log-container">
    <div class="alg-title">日志文件</div>
    <div class="algLog-content" id="algLog">
      <ul>
        <li v-for="i in algLog" ref="algLogRef" :key="i.id">{{ i }}</li>
      </ul>
    </div>
  </div>

2. 使用websocket获取日志文件

  // log 日志自动滚动到底部
  var logBox = document.getElementById("algLog");
  logBox.scrollTop = logBox.scrollHeight;

const algLog = reactive<any>([]);

//使用websocket获取日志内容
function startEventBus() {
  let eb = new EventBus(
    `${import.meta.env.VITE_GRAPHQL_SCHEME}://${
      import.meta.env.VITE_GRAPHQL_HOST
    }/eventbus`
  );
  eb.enableReconnect(true);
  eb.onopen = function () {
    console.info("bus onopen");
    eb.registerHandler(
      `mpai://ws/TrainTaskRuntime/${trainingData.value?.id}`,
      function (err: any, msg: { body: { payload: { line: any } } }) {
        if (err) {
          return;
        }
        const bodyData = msg.body;
        if (bodyData.type === "TrainTaskLog") {
          algLog.push(bodyData.payload.line);    
        }
        // log 日志自动滚动到底部
        var logBox = document.getElementById("algLog");
        logBox.scrollTop = logBox.scrollHeight;
      }
    );
  };
  eb.onclose = (e: any) => {
    console.log("bus onclose", e);
  };
  eb.onerror = (e: any) => {
    console.log("bus onerror", e);
  };
  eventBusObj = eb;
}

//在进入页面执行startEventBus方法
onMounted(() => {
  startEventBus();
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,在JavaScript中使用WebSocket与Python通信,需要创建WebSocket对象并建立连接。可以使用以下代码: ```javascript var ws = new WebSocket("ws://localhost:8000/ws"); ws.onopen = function() { console.log("WebSocket连接成功"); }; ws.onmessage = function(evt) { var received_msg = evt.data; console.log("接收到消息: " + received_msg); // 在此处对接收到的数据进行处理 }; ws.onclose = function() { console.log("WebSocket连接关闭"); }; ``` 这里假设Python端的WebSocket服务器地址为 `ws://localhost:8000/ws`。在Python端,可以使用 `websocket` 模块创建WebSocket服务器,并在接收到WebSocket连接请求时向客户端发送消息。以下是一个简单的Python WebSocket服务器实现: ```python import asyncio import websockets async def server(websocket, path): print("接收到WebSocket连接") await websocket.send("欢迎连接到WebSocket服务器!") while True: try: message = await websocket.recv() print("接收到消息: " + message) # 在此处对接收到的数据进行处理,并发送回复消息 reply_message = "已收到消息:" + message await websocket.send(reply_message) except websockets.ConnectionClosed: print("WebSocket连接关闭") break start_server = websockets.serve(server, "localhost", 8000) asyncio.get_event_loop().run_until_complete(start_server) asyncio.get_event_loop().run_forever() ``` 这里使用 `websockets` 模块创建WebSocket服务器,当接收到WebSocket连接请求时,向客户端发送欢迎消息,并不断接收客户端发送的消息,并在接收到消息后进行处理并返回回复消息。由于WebSocket是基于异步IO的协议,因此在Python端需要使用异步IO库 `asyncio` 来处理WebSocket连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值