>  기사  >  PHP 프레임워크  >  워커맨 403 오류 원인과 해결방법

워커맨 403 오류 원인과 해결방법

尚
원래의
2019-12-05 10:52:313172검색

워커맨 403 오류 원인과 해결방법

workerman에 다음 오류가 있습니다.

400 잘못된 요청
Sec-WebSocket-Key를 찾을 수 없습니다.
이것은 WebSocket 서비스이므로 HTTP를 통해 액세스할 수 없습니다.

오류 이유

이 오류는 http 프로토콜을 사용하여 websocket 프로토콜 서비스에 액세스했음을 의미합니다. 권장사항: workerman tutorial

개발자는 클라이언트가 사용하는 애플리케이션 계층 프로토콜이 서버의 애플리케이션 계층 프로토콜과 동일해야 한다는 점에 주의해야 합니다. 즉, 서버가 사용하는 프로토콜에 관계없이 클라이언트는 해당 프로토콜을 사용합니다. 사용합니다.

프로토콜이 일치하지 않으면 통신이 거부되거나 오류가 발생하는 등의 상황이 발생합니다.

이 원칙은 브라우저 주소 표시줄에서 데이터베이스의 ip:3306 포트에 액세스하는 것과 같습니다. 데이터베이스가 실제로 유용한 정보를 반환할 것이라고 기대하지는 않습니다. 그렇죠?

올바른 접근 방식

올바른 접근 방식은 웹소켓 프로토콜에 대한 링크를 설정하고 웹소켓 프로토콜을 사용하여 작업자만의 웹소켓 프로토콜 서비스와 통신하는 것입니다. 클라이언트가 브라우저인 경우 js를 사용하여 웹소켓 링크를 설정할 수 있습니다. 코드는 다음과 유사합니다.

// 假设服务端ip为127.0.0.1,端口为2346
ws = new WebSocket("ws://127.0.0.1:2346");
ws.onopen = function() {
    alert("连接成功");
    ws.send('tom');
    alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
    alert("收到服务端的消息:" + e.data);
};

위 내용은 워커맨 403 오류 원인과 해결방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.