【问题标题】:How to access websocket in svelte?如何在 svelte 中访问 websocket?
【发布时间】:2021-11-08 02:13:08
【问题描述】:
<script>
    const socket = new WebSocket("ws://localhost:8000/chat")
    socket.addEventListener("open", ()=> {
        console.log("Opened")
    })


</script>

我正在尝试将我的 svelte 连接到我的 fastapi 后端,但使用 svelte 套件时出现此错误。我明白了

WebSocket is not defined
ReferenceError: WebSocket is not defined

错误。

我该如何解决?

【问题讨论】:

  • 我已经尝试了代码,它可以在我的机器上运行 Svelte。
  • 该代码是在服务器(在服务器端渲染期间)还是在客户端执行?

标签: arrays svelte sveltekit


【解决方案1】:

WebSocket 是客户端特定功能,您必须确保此代码仅在浏览器中执行(默认情况下脚本部分在服务器和客户端上执行)

您可以执行以下操作

let socket
onMount(() => {
  socket = new WebSocket("ws://localhost:8000/chat")
  socket.addEventListener("open", ()=> {
    console.log("Opened")
  })
})

onMount 仅在浏览器中运行,因此这是添加此代码的理想位置,如有必要,请记住在销毁时清理侦听器。

【讨论】:

    猜你喜欢
    • 2014-09-02
    • 2020-05-29
    • 2014-08-05
    • 2019-09-29
    • 2018-06-01
    • 1970-01-01
    • 2013-03-16
    • 2019-12-26
    • 1970-01-01
    相关资源
    最近更新 更多