자바스크립트 소켓통신 예제

자바스크립트 소켓통신 예제

웹소켓 연결이 설정되면 클라이언트와 서버가 서로 데이터를 보낼 수 있습니다. 함수 getData(cmd){새 약속(함수, 거부){client.on(`데이터`, 함수(데이터){console.log(“!!!!!! 약속이라고”); 해결(데이터); }); client.on(`error`), 함수(error){ 거부(error); }; client.write(cmd); }) .catch(함수(오류) { //죄송합니다, 오류 콘솔.log(error.message); }; } 클라이언트가 IP 주소 및 포트 번호에 대한 시작 부분에서 한 번 초기화된 TCP 소켓 클라이언트를 나타내는 전역 변수입니다. 나는 이 같은 루프 뭔가에서이 함수를 호출 : @i-am-vivek 당신이 “에코 서버”를 원하지 않는 경우, 시도하자 : socket.pipe (소켓); 와 함께: ““`on(`데이터`, 기능(data){콘솔.log(데이터); var textChunk = data.toString(`utf8`); 콘솔.log(textChunk); }; 먼저 프로젝트를 설명하는 package.json 매니페스트 파일을 만들어 보겠습니다. 나는 당신이 전용 빈 디렉토리에 배치하는 것이 좋습니다 (나는 내 채팅 예제를 호출합니다). Btw, WebSockets 작동 방식에 대 한 좀 더 자세한 정보를 찾고 있다면 이 문서 Websockets 101을 권장 합니다. 그렇다면 차이점은 무엇일까요? 기본적으로 그들은 같은 일, 그것은 단지 우리가 자바 스크립트 언어의 다른 규칙을 사용. 첫 번째 예제에서는 연결 이벤트 처리기를 net.createServer()에 전달하고 listen() 함수를 연결했습니다. 후자의 경우, 우리는 좀 더 `전통적인` 접근 방식을 취했습니다. 어느 쪽이든 작동합니다.

XMLHttpRequest(XHR)는 클라이언트가 자바스크립트를 통해 데이터 전송을 스크립팅할 수 있는 브라우저 수준 API입니다. XHR은 인터넷 익스플로러 5에서 처음 선보였으며 비동기 자바스크립트 및 XML(AJAX) 혁명의 핵심 기술 중 하나가 되었으며, 현재 거의 모든 최신 웹 애플리케이션의 기본 구성 요소입니다. 연결이 설정되면 (즉, readyState는 OPEN입니다), 예제Socket.protocol은 서버가 선택한 프로토콜을 알려줍니다. 다음은 새 WebSocket에 대한 브라우저 요청의 예입니다(“ws://javascript.info/chat”). 여전히 그것은 또한 매우 간단 할 수 있습니다. 웹 소켓에 https://github.com/websockets/ws 모듈이 있는 Node.js를 사용합니다. 이 간단한 예제에서는 wss://www.example.com/socketserver 서버에 연결하는 새 WebSocket을 만듭니다. “protocolOne”의 사용자 지정 프로토콜은 이 예제의 소켓 요청에 이름이 지정되지만 생략할 수 있습니다. socket.pipe(소켓)는 모든 단일 요청에 대한 연결을 닫지 않을 때 문제가 됩니다. 소켓에서 여러 요청/응답을 수신하려는 경우 “데이터” 이벤트도 “쓰기”를 호출하고 사용자 고유의 데이터를 다시 가져옵니다.

이 것을 해결할 수있는 쉬운 방법은 없는 것 같습니다. 우리는 socket.send (데이터)를 거듭 호출 할 수 있습니다. 그러나 데이터는 메모리에 버퍼링 (저장)되고 네트워크 속도가 허용하는 한 빨리만 전송됩니다. 이를 검사하여 소켓이 실제로 전송에 사용할 수 있는지 확인할 수 있습니다. 연결을 닫기 전에 소켓의 bufferedAmount 특성을 검사하여 네트워크에서 데이터가 아직 전송되지 않은지 확인하는 것이 유용할 수 있습니다.

Share this post