programing

현재 서버를 WebSocket으로 포인트하는 방법

starjava 2023. 3. 13. 20:03
반응형

현재 서버를 WebSocket으로 포인트하는 방법

Jetty 8 서버를 실행하고 있습니다(곧 웹소켓이 탑재되기를 희망합니다).

Ajax 콜을 사용하여 서버에 데이터를 송신하는 경우는, 다음의 조작을 실행할 수 있습니다.

$.ajax({ url: "ajax?a=getSomeData" });

이 시나리오에서는, 다음의 장소에 있는 서버에 접속하면192.168.1.100데이터를 가져오는 실제 URL은 다음과 같습니다.192.168.1.100/ajax?a=getSomeData단, 같은 소프트웨어를 실행하고 있는 다른 서버에 접속하면192.168.1.200url은 다음과 같습니다.192.168.1.200/ajax?a=getSomeData.

그러나 WebSockets를 사용하여 동일한 작업을 수행하고자 하는 경우 방법을 찾을 수 없습니다.

var socket = new WebSocket('ws://www.example.com/');

효과가 있어요 하지만 상대 URL 같은 걸 원해요

var socket = new WebSocket('ws://sockets?a=getSomeData');

따라서 Ajax 요청과 같이 다음 URL에서 서버에 접속할 경우192.168.1.100url은 다음과 같습니다.192.168.1.100/sockets?a=getSomeData에 접속하면,192.168.1.200url은 다음과 같습니다.192.168.1.200/sockets?a=getSomeData.

어떻게 하면 좋을까요?

URL을 직접 작성하기만 하면 됩니다.

var socket = new WebSocket("ws://" + location.host + "/whatever");

locationobject는 의 속성입니다.window오브젝트이므로 글로벌하게 사용할 수 있습니다.

포트 없이 호스트만 가져오려면location.hostname대신.예를 들어 웹 소켓서버가 다른 포트로 리슨하는 경우.

또, 다음의 항목을 검사할 수 있습니다.location.protocol에 접속할 필요가 있는지 아닌지를 알 수 있습니다.wss(경우https사용) 또는ws(경우http사용되고 있습니다).

언급URL : https://stackoverflow.com/questions/16090530/how-to-point-a-websocket-to-the-current-server

반응형