websocket 및 loction.replace에 대한 질문

hhh

Deno ws를 사용하여 문서를 다시로드하려고하는데 두 번째 다시로드 후 오류가 발생합니다.
Uncaught ConnectionReset: Socket has already been closed throw new Deno.errors.ConnectionReset("Socket has already been closed");

var ws = new WebSocket("ws://127.0.0.1:8080/ws")
    ws.onopen = function () {
      ws.send('ws open')
      console.log('ws open');
    }
    ws.addEventListener("message", (e) => {
      if (e.data === 'fileUpdate') {
        // ws.send('close')
        location.replace(location.href);
      }
    })

location.replace(location.href)어떤 해결책이 오류를 일으키는 같습니까?

마르코스 카사 그란데

소켓이 닫힌 메시지를 보내므로 오류가 발생합니다 .

할 때 : location.replace(location.href);페이지가 새로 고쳐지고 현재 소켓이 닫힙니다.

오류를 포착하거나 ws.isClosed메시지를 보내기 전에 확인할 수 있습니다 .

for await (const e of ws) {
  if (e === 'close') {
    ob.remove("fileUpdate")
    continue
  }
  ob.on("fileUpdate", () => {
    console.log('sending')
    if(!ws.isClosed)
       ws.send("fileUpdate")
  })
}

그러면 오류가 해결되지만 원인은 해결되지 않습니다. 귀하의 ob.on('fileUpdate')이벤트가 발사됩니다 소켓이 닫혀 있습니다. WebSocket close 이벤트에서 해당 리스너를 지워야합니다.ws.isWebSocketCloseEvent

import { acceptWebSocket, isWebSocketCloseEvent } from "https://deno.land/[email protected]/ws/mod.ts";
/* ... */
for await (const e of ws) {
  if(isWebSocketCloseEvent(e) || e === 'close') {
    // clear listeners here
    ob.remove("fileUpdate")
    // if e === 'close' you may want to close the socket
  }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

IIS 및 localhost에 대한 질문

분류에서Dev

IIS 및 localhost에 대한 질문

분류에서Dev

whiptail 및 bash 함수에 대한 질문

분류에서Dev

ngshow 및 범위에 대한 질문

분류에서Dev

find 및 grep에 대한 질문

분류에서Dev

SSH 및 UFW에 대한 질문

분류에서Dev

Akka 및 대해서 typesafety에 대한 일반적인 질문

분류에서Dev

Char 문자열 및 포인터에 대한 C ++ 질문

분류에서Dev

지도, 문자열 포인터 및 폐쇄에 대한 질문

분류에서Dev

줄 및 문자열 찾기 기능에 대한 질문

분류에서Dev

mpi mpich에서 MPI_Reduce 및 MPI_Bcast에 대한 질문

분류에서Dev

GNU Octave-그래프 및 플로팅에 대한 질문

분류에서Dev

WeakMap 및 개인 변수에 대한 질문

분류에서Dev

힙 정렬 및 구조에 대한 일반적인 질문

분류에서Dev

hFlush 및 지연 평가에 대한 질문

분류에서Dev

상속 및 참조에 대한 C ++ 질문

분류에서Dev

reactJS, nodeJS 및 NPM에 대한 일반적인 질문

분류에서Dev

SSL 및 정규화에 대한 .htaccess 코드 질문

분류에서Dev

QML 및 PySide2에 대한 몇 가지 질문

분류에서Dev

Apache Airflow : 동적 작업 및 병렬 처리에 대한 질문

분류에서Dev

C ++ boost :: asio 및 std :: async에 대한 질문이 있습니다.

분류에서Dev

가상 환경, PATH 변수 및 명령 줄에 대한 질문

분류에서Dev

terraform 및 github 작업 / 비밀에 대한 질문

분류에서Dev

React.useEffect () 및 React.useState ()에 대한 질문

분류에서Dev

random (x) 및 random () % x에 대한 수학 질문-Java

분류에서Dev

sqrt 및 round의 인수 유형에 대한 질문

분류에서Dev

Rust 정적 수명 및 범위에 대한 질문

분류에서Dev

새 노트북의 Linux DOS 및 BIOS에 대한 질문

분류에서Dev

GNU Octave-그래프 및 플로팅에 대한 질문

Related 관련 기사

  1. 1

    IIS 및 localhost에 대한 질문

  2. 2

    IIS 및 localhost에 대한 질문

  3. 3

    whiptail 및 bash 함수에 대한 질문

  4. 4

    ngshow 및 범위에 대한 질문

  5. 5

    find 및 grep에 대한 질문

  6. 6

    SSH 및 UFW에 대한 질문

  7. 7

    Akka 및 대해서 typesafety에 대한 일반적인 질문

  8. 8

    Char 문자열 및 포인터에 대한 C ++ 질문

  9. 9

    지도, 문자열 포인터 및 폐쇄에 대한 질문

  10. 10

    줄 및 문자열 찾기 기능에 대한 질문

  11. 11

    mpi mpich에서 MPI_Reduce 및 MPI_Bcast에 대한 질문

  12. 12

    GNU Octave-그래프 및 플로팅에 대한 질문

  13. 13

    WeakMap 및 개인 변수에 대한 질문

  14. 14

    힙 정렬 및 구조에 대한 일반적인 질문

  15. 15

    hFlush 및 지연 평가에 대한 질문

  16. 16

    상속 및 참조에 대한 C ++ 질문

  17. 17

    reactJS, nodeJS 및 NPM에 대한 일반적인 질문

  18. 18

    SSL 및 정규화에 대한 .htaccess 코드 질문

  19. 19

    QML 및 PySide2에 대한 몇 가지 질문

  20. 20

    Apache Airflow : 동적 작업 및 병렬 처리에 대한 질문

  21. 21

    C ++ boost :: asio 및 std :: async에 대한 질문이 있습니다.

  22. 22

    가상 환경, PATH 변수 및 명령 줄에 대한 질문

  23. 23

    terraform 및 github 작업 / 비밀에 대한 질문

  24. 24

    React.useEffect () 및 React.useState ()에 대한 질문

  25. 25

    random (x) 및 random () % x에 대한 수학 질문-Java

  26. 26

    sqrt 및 round의 인수 유형에 대한 질문

  27. 27

    Rust 정적 수명 및 범위에 대한 질문

  28. 28

    새 노트북의 Linux DOS 및 BIOS에 대한 질문

  29. 29

    GNU Octave-그래프 및 플로팅에 대한 질문

뜨겁다태그

보관