WebSocket连接到' ws://..'失败:连接建立错误:net :: ERR_CONNECTION_REFUSED

时间:2015-10-29 07:50:49

标签: php websocket

从最近4个小时开始搜索这个简单的套接字连接代码并获取错误。我也改变了端口,但没有任何作用。

 //create a new WebSocket object.
        var wsUri = "ws://localhost:9000/demo/server.php";  
        websocket = new WebSocket(wsUri);

    websocket.onopen = function(ev) { // connection is open 
        $('#message_box').append("<div class=\"system_msg\">Connected!</div>"); //notify user
    }

    $('#send-btn').click(function(){ //use clicks message send button   
        var mymessage = $('#message').val(); //get message text
        var myname = $('#name').val(); //get user name

        if(myname == ""){ //empty name?
            alert("Enter your Name please!");
            return;
        }
        if(mymessage == ""){ //emtpy message?
            alert("Enter Some message Please!");
            return;
        }

        //prepare json data
        var msg = {
        message: mymessage,
        name: myname,
        color : '<?php echo $colours[$user_colour]; ?>'
        };
        //convert and send data to server
        websocket.send(JSON.stringify(msg));
    });

错误:

  

WebSocket连接到&#39; ws:// localhost:9000 / demo / server.php&#39;失败:   连接建立错误:net :: ERR_CONNECTION_REFUSED

PHP

$host = 'localhost'; //host
$port = '9000'; //port
$null = NULL; //null var

//Create TCP/IP sream socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//reuseable port
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);

//bind socket to specified host
socket_bind($socket, 0, $port);

//listen to port
socket_listen($socket);

//create & add listning socket to the list
$clients = array($socket);

3 个答案:

答案 0 :(得分:2)

您没有创建websocket服务器。 这就是您所需要的:http://socketo.me/

让websockets在PHP中正常工作是令人讨厌和混乱的(特别是,如果你是初学者)。 你可能过头了。

答案 1 :(得分:0)

您的PHP使用常规(原始)tcp / ip套接字连接。 Websockets is a protocol with a specific handshake and packet framing ...如果服务器不说“Websockets”,客户端将引发错误。

P.S。

PHP最初设计用作HTTP连接的Web应用程序脚本语言,通常使用CGI快速返回充当要发送的文件/ html的String。

从本质上讲,PHP进程的使用寿命较短。

我不建议使用PHP编写websocket服务器,尽管你可以查看Ratchet这是一个PHP websocket库,它可以帮助你使用PHP构建一个websocket应用程序。

我建议您考虑使用Ruby,node.js或Python作为您的Websocket项目 - 当您深入了解项目时,它将为您节省很多麻烦,并且您可能会有更好的社区支持来应对您面临的任何挑战。方式。

答案 2 :(得分:0)

尝试关闭可能阻止套接字的端口以保护所有防病毒软件。