• 技术文章 >php框架 >Workerman

    workerman 403错误原因与解决方法

    尚2019-12-05 10:52:31原创1029

    workerman出现错误如下:

    400 Bad Request
    Sec-WebSocket-Key not found.
    This is a WebSocket service and can not be accessed via HTTP.

    错误原因

    出现这个错误说明你用http协议去访问了websocket协议的服务。推荐:workerman教程

    开发者要注意,客户端使用的应用层协议要与服务端的应用层协议相同,也就是服务端是什么协议,客户端就使用什么协议。

    如果协议不对应就会出现类似这种拒绝通讯甚至出错的情况。

    这个道理就像在浏览器地址栏里访问数据库的ip:3306端口一样,你不会指望数据库真的会给你返回什么有用的信息吧?

    正确做法

    正确的做法应该是建立一个websocket协议的链接,利用websocket协议与workerman的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);
    };

    以上就是workerman 403错误原因与解决方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:workerman
    上一篇:workerman有什么用 下一篇:workerman是多线程吗
    大前端线上培训班

    相关文章推荐

    • workerman和swoole的区别• workerman用什么协议• workerman怎么用• workerman有守护进程么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网