현재 서버를 WebSocket으로 포인트하는 방법
Jetty 8 서버를 실행하고 있습니다(곧 웹소켓이 탑재되기를 희망합니다).
Ajax 콜을 사용하여 서버에 데이터를 송신하는 경우는, 다음의 조작을 실행할 수 있습니다.
$.ajax({ url: "ajax?a=getSomeData" });
이 시나리오에서는, 다음의 장소에 있는 서버에 접속하면192.168.1.100
데이터를 가져오는 실제 URL은 다음과 같습니다.192.168.1.100/ajax?a=getSomeData
단, 같은 소프트웨어를 실행하고 있는 다른 서버에 접속하면192.168.1.200
url은 다음과 같습니다.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.100
url은 다음과 같습니다.192.168.1.100/sockets?a=getSomeData
에 접속하면,192.168.1.200
url은 다음과 같습니다.192.168.1.200/sockets?a=getSomeData
.
어떻게 하면 좋을까요?
URL을 직접 작성하기만 하면 됩니다.
var socket = new WebSocket("ws://" + location.host + "/whatever");
그location
object는 의 속성입니다.window
오브젝트이므로 글로벌하게 사용할 수 있습니다.
포트 없이 호스트만 가져오려면location.hostname
대신.예를 들어 웹 소켓서버가 다른 포트로 리슨하는 경우.
또, 다음의 항목을 검사할 수 있습니다.location.protocol
에 접속할 필요가 있는지 아닌지를 알 수 있습니다.wss
(경우https
사용) 또는ws
(경우http
사용되고 있습니다).
언급URL : https://stackoverflow.com/questions/16090530/how-to-point-a-websocket-to-the-current-server
'programing' 카테고리의 다른 글
스프링 부트에서의 컴포넌트/빈 테스트 방법 (0) | 2023.03.13 |
---|---|
Angular 2의 url에서 쿼리 파라미터를 얻는 방법 (0) | 2023.03.13 |
응답 단편 단축을 컴파일하지 못했습니다. (0) | 2023.03.13 |
MongoDB는 모든 데이터베이스를 삭제합니다. (0) | 2023.03.13 |
JSON 파일에서 R로 데이터 가져오기 (0) | 2023.03.08 |