소켓 메세지 읽을때...

소켓 메세지 읽을때...

QA

소켓 메세지 읽을때...

답변 2

본문

안녕하세요.

웹소켓 통신중인 사이트의 

Request URL 을 가져와서 아래쪽에 넣으면..
(임의로 aaa.html 을 페이지 하나 만들어서 주소만 넣습니다.)

 

서로 다른 2개의 사이트가 있다면..

어떤 것은..값이 찍히는데..
어떤 것은 아무것도 찍히지가 않더라구요..

 

가장큰 차이는 개발자탭에서 해당 주소에서 Copy request headers 를 보면..

Cookie: cdn=http://testsite.com; lang=ko; locale=ko; SITESESSIONID=rs2rjisup5qb5i7mrwruykxa32d

이런값이 있고 없고의 차이인듯 합니다. 그 외에는 차이를 잘 모르겠는데..ㅠ

 

값이 안찍히는 것은 왜 안되는 건지 혹시 경험있으신 분이나..원인을 아시는분 있으실까요...ㅠㅠ

 


const Ssscode = document.getElementById("sscode").value;
const webSocket = new WebSocket(Ssscode );
// const webSocket = new WebSocket("ws://test.testsite.com/xxxxxxx"); 
// 이런식으로 통신중인 소켓 주소를 가져와 넣습니다.
 
webSocket.onopen = function () {
    console.log('소켓 연결 성공!'); /// ==> 여기까지는 다 찍힘.
};
 
webSocket.onmessage = function (event) {
    console.log(event.data);   /// ==> 여기에서 message 가 찍히는곳이 있고 안찍히는곳이 있음.
};

 

혹시 질문분류 를 잘못 선택했다면...지적해 주세요..^^;;

이 질문에 댓글 쓰기 :

답변 2

gpt에게 물어봤어요~도움이 되실지는 모르겠어요~

 

웹소켓 통신에서 특정 사이트에서는 데이터가 정상적으로 수신되고, 다른 사이트에서는 데이터가 수신되지 않는 경우, 몇 가지 가능한 원인을 고려해볼 수 있습니다. 여기서 주목할 점은 Cookie가 요청 헤더에 포함되어 있는지의 여부입니다. Cookie의 유무가 통신에 영향을 미친다면, 다음과 같은 이유를 고려해볼 수 있습니다:

1. 인증 및 세션 관리
Cookie 포함: 일부 웹소켓 서버는 클라이언트의 인증 상태를 관리하기 위해 쿠키를 사용할 수 있습니다. 예를 들어, 사용자가 로그인한 상태를 유지하기 위해 세션 ID를 쿠키에 저장하고, 웹소켓 연결 시 이 쿠키를 사용해 사용자 인증을 수행할 수 있습니다. 따라서, 쿠키가 포함되어 있지 않은 경우, 서버가 클라이언트를 인증하지 못하고 통신을 제한할 수 있습니다.
2. Same-Origin Policy 및 CORS
웹소켓 연결은 보통 Same-Origin Policy(SOP)의 제약을 받지 않습니다. 그러나, 웹소켓 서버가 특정 출처에서의 연결만을 허용하도록 구성되어 있을 수 있습니다. 이 경우, 서버는 Origin 헤더를 확인하여 연결을 수락하거나 거부할 수 있습니다. Cookie가 포함되지 않은 요청은 SOP 또는 CORS(Cross-Origin Resource Sharing) 정책 위반으로 간주되어 연결이 거부될 수 있습니다.
3. 웹소켓 서버 구성 및 보안 정책
웹소켓 서버의 구성이나 보안 정책에 따라, 특정 요청 헤더가 없는 연결을 거부할 수 있습니다. 예를 들어, 서버가 요청에 Cookie나 특정 사용자 인증 토큰의 존재를 요구하도록 구성되어 있다면, 이러한 정보가 없는 요청은 처리되지 않을 수 있습니다.
4. 네트워크 문제나 서버 상태
네트워크 상의 문제나 서버의 현재 상태로 인해 통신이 원활하게 이루어지지 않을 수도 있습니다. 이는 Cookie와는 직접적인 관련이 없지만, 다른 요인으로 인해 통신이 차단되거나 지연될 수 있음을 의미합니다.
해결 방법
서버 로그 확인: 웹소켓 서버의 로그를 확인하여 연결 실패의 구체적인 원인을 파악합니다.
개발자 도구 사용: 브라우저의 개발자 도구를 사용하여 웹소켓 연결 시도 시 서버로부터 받는 응답을 확인합니다. 특히, 연결 실패 시 서버로부터 반환되는 오류 코드나 메시지를 확인할 수 있습니다.
서버 구성 검토: 웹소켓 서버의 구성을 검토하여 Cookie나 Origin 헤더에 대한 요구 사항이 있는지 확인합니다. 필요한 경우, 서버의 CORS 정책이나 인증 방식을 조정할 수 있습니다.
클라이언트 코드 검증: 클라이언트 측에서 웹소켓 연결을 시도할 때 필요한 요청 헤더가 모두 포함되어 있는지, 올바른 형식으로 전송되고 있는지 확인합니다.
이러한 점들을 고려하여 문제를 해결해 나가는 것이 중요합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 2,662
© SIRSOFT
현재 페이지 제일 처음으로