ホームページ  >  記事  >  PHPフレームワーク  >  ワーカーマン 403 エラーの原因と解決策

ワーカーマン 403 エラーの原因と解決策

尚
オリジナル
2019-12-05 10:52:313171ブラウズ

ワーカーマン 403 エラーの原因と解決策

workerman で次のエラーが発生しました:

400 Bad Request
Sec-WebSocket-Key not found.
これはWebSocket サービスのため、HTTP 経由でアクセスできません。

エラー理由

このエラーは、WebSocket プロトコルへのアクセスに http プロトコルを使用したことを示しますサービス 。推奨事項: workermanTutorial

開発者は、クライアントが使用するアプリケーション層プロトコルがサーバーのアプリケーション層プロトコルと同じである必要があることに注意してください。クライアントが使用するプロトコル。

プロトコルが対応していないと、このように通信が拒否されたり、エラーが発生したりすることがあります。

この原則は、ブラウザのアドレス バーでデータベースの ip:3306 ポートにアクセスするのと同じです。データベースが実際に有用な情報を返してくるとは期待していませんよね。

正しいアプローチ

正しいアプローチは、WebSocket プロトコルへのリンクを確立し、WebSocket プロトコルを使用してワーカーマンの WebSocket プロトコル サービスと通信することです。クライアントがブラウザの場合、js を使用して WebSocket リンクを確立できます。コードは次のようになります:

// 假设服务端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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。