Ошибка с PHP Websocket и сервером Wamp

Я действительно новичок в этом веб-сокете, я пытаюсь подключить этот веб-сокет: phpwebsocket с сервером WAMP, во-первых, в моем httpd.conf я написал listen 9300, и если я перехожу на localhost: 9300, он работает правильно, но когда я иду в консоль и пишу:

 php -q C:\wamp\www\demos\server.php

Я получил эту ошибку:

ошибка

Вот код server.php:

<?php
set_time_limit(0);
require 'class.PHPWebSocket.php';
function wsOnMessage($clientID, $message, $messageLength, $binary) {
    global $Server;
    $ip = long2ip( $Server->wsClients[$clientID][6] );
    if ($messageLength == 0) {
        $Server->wsClose($clientID);
        return;
    }

    if ( sizeof($Server->wsClients) == 1 )
        $Server->wsSend($clientID, "There isn't anyone else in the room, but I'll still listen to you. --Your Trusty Server");
    else
        foreach ( $Server->wsClients as $id => $client )
            if ( $id != $clientID )
                $Server->wsSend($id, "Visitor $clientID ($ip) said \"$message\"");
}
function wsOnOpen($clientID)
{
    global $Server;
    $ip = long2ip( $Server->wsClients[$clientID][6] );

    $Server->log( "$ip ($clientID) has connected." );

    foreach ( $Server->wsClients as $id => $client )
        if ( $id != $clientID )
            $Server->wsSend($id, "Visitor $clientID ($ip) has joined the room.");
}
function wsOnClose($clientID, $status) {
    global $Server;
    $ip = long2ip( $Server->wsClients[$clientID][6] );

    $Server->log( "$ip ($clientID) has disconnected." );
    foreach ( $Server->wsClients as $id => $client )
        $Server->wsSend($id, "Visitor $clientID ($ip) has left the room.");
}
$Server = new PHPWebSocket();
$Server->bind('message', 'wsOnMessage');
$Server->bind('open', 'wsOnOpen');
$Server->bind('close', 'wsOnClose');
$Server->wsStartServer('localhost', 9300);

?>

Спасибо.

О, и мои расширения:

;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll
extension=php_mbstring.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll      
;extension=php_oci8_11g.dll 
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

А также вывод php -me

PHP-me


person Darkness    schedule 17.07.2013    source источник
comment
Вероятно, вы не установили расширение php5_socket. Попробуйте это php.net/manual/en/ sockets.installation.php   -  person Artem Zhuravlev    schedule 18.07.2013
comment
у меня есть такая строка: extension=php_sockets.dll без ;   -  person Darkness    schedule 18.07.2013
comment
введите php -me в командной строке. Есть ли на выходе сокеты?   -  person Artem Zhuravlev    schedule 18.07.2013
comment
Нет, у меня его нет D:   -  person Darkness    schedule 18.07.2013


Ответы (3)


На сервере WAMP, если вы работаете из командной строки, вы используете PHP CLI.

PHP CLI использует файл php.ini, отличный от того, который используется, когда php работает в apache.

Edit c:\wamp\bin\php\php5.x.y\php.ini

и раскомментируйте строку расширения php_sockets и любые другие расширения, которые могут вам понадобиться при запуске PHP CLI.

person RiggsFolly    schedule 18.07.2013
comment
Хорошо, с edit.exe я увидел, что у меня есть ; в php_sockets, я не знаю почему... но с блокнотом у меня был php_sockets без ; Что же, спасибо большое!!! - person Darkness; 18.07.2013
comment
Спасибо за это - просто хотел добавить, что в моей конкретной конфигурации (UniServerZ) это было php-cli.ini. Я скопировал строку extension=php_sockets.dll из файла php_development.ini в php-cli.ini, и это сработало. - person user1274820; 23.02.2017

Вы должны установить расширение php_socket. http://php.net/manual/en/install.windows.extensions.php Эта ссылка имеет всю информацию об этом.

person Artem Zhuravlev    schedule 17.07.2013

я работаю на своем сайте, и партнер по хостингу сказал, что вы не можете включить сокеты на виртуальном хостинге, вам нужно купить сервер vps, на котором размещено какое-либо решение. на локальном хосте он работает нормально недвижимость в Дубае

person irfan majeed    schedule 03.01.2017