2013-07-17 105 views
3

我对这个Websockets真的很陌生,我试图用WAMP服务器连接这个websocket:phpwebsocket,首先在我的httpd.conf中,我写了听9300,如果我去为localhost:9300它的作品的权利,但是当我去安慰和写:PHP Websocket和Wamp服务器的错误

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

我得到这个错误:

error

这里的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

+0

也许你还没有安装php5_socket扩展插槽启用。试试这个http://www.php.net/manual/en/sockets.installation.php –

+0

我有这样的行: extension = php_sockets.dll没有; – Darkness

+1

在命令行输入“php -me”。它在输出中是否有“套接字”? –

回答

6

在WAMP Server中,如果您正在使用命令行运行PHP CLI,

PHP CLI使用与php在apache中运行时所用的不同的php.ini文件。

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

取消注释php_sockets扩展行以及运行PHP CLI时可能需要的任何其他扩展。

+0

好吧,用edit.exe,我看到我有;在php_sockets中,我不知道为什么...但记事本我没有php_sockets;无论如何,非常感谢你! – Darkness

+0

感谢你 - 只是想在我的特定配置(UniServerZ)中添加它是'php-cli.ini'我将php_development.ini文件中的'extension = php_sockets.dll'行复制到'php-cli.ini '它的工作。 – user1274820

0

我在我的网站上运行,主办合伙人说你不能在共享主机u需要购买VPS服务器托管任何solution.on本地主机它工作正常property in dubai