2014-09-18 20 views
0

会是什么这个在PHP相当于连接到插座和发送消息会是什么这相当于在PHP连接到插座及发送消息

var msg = "hello Motto"; 
var wsUri = "ws://mylocalserver:9001/ab/server.php";  
    websocket = new WebSocket(wsUri); 
    websocket.send(msg); 

该公司在JavaScript中的伟大工程我有一个显示消息的侦听器文件。我想用php做同样的事情我很困惑我在网上查了很多文档,但没有任何看起来简单的任何帮助请

这里是php代码我放在一起,但由于某些原因我没有收到工作在另一端的平:

$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); 

$msg = "Ping !"; 
$len = strlen($msg); 

socket_sendto($sock, $msg, $len, 0, 'ws://mylocalserver:9001/ab/server.php', 9001); 
socket_close($sock); 

这是一个失败的部分: 这个作品:

socket_sendto($sock, $msg, $len, 0, 'mylocalserver', 9001); 

但这并不工作: socket_sendto($袜子,$味精,$ LEN,0 ,'mylocalserver/ab/server.php',9001); 问题是我使用server.php来处理发送的消息。有什么想法吗?

+0

从这里开始:http://php.net/manual/en/book.sockets.php – 2014-09-18 22:34:00

+0

此功能目前没有记录;只有它的参数列表可用。这是套接字发送。这就是为什么我说它令人困惑,我希望有一个例子。谢谢你Dagon – nodejsj 2014-09-18 22:35:01

+0

例如:http://php.net/manual/en/sockets.examples.php – 2014-09-18 22:36:22

回答

0

PHP的WebSocket服务器的例子

这些仅仅是裸露的骨头

//Create TCP/IP sream socket and return the socket resource 
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 

// Bind the source address 
socket_bind($socket, 'localhost'); 

// Listen to incoming connection 
socket_listen($socket); 

// Accept new connections 
socket_accept($socket); 

// Handshake 
$secKey = $headers['Sec-WebSocket-Key']; 
$secAccept = base64_encode(pack('H*', sha1($secKey . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'))); 
$upgrade = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" . 
"Upgrade: websocket\r\n" . 
"Connection: Upgrade\r\n" . 
"WebSocket-Origin: $host\r\n" . 
"WebSocket-Location: ws://$host:$port/deamon.php\r\n". 
"Sec-WebSocket-Accept:$secAccept\r\n\r\n"; 
socket_write($client_conn,$upgrade,strlen($upgrade)); 


您更好使用图书馆要做到这一点在这样一个PHP: https://github.com/ghedipunk/PHP-Websockets

如果真是太要学的很多,you can have a look at this tutorial它向您展示了如何使用websockets建立实时聊天。 (这也使用php的websocket库)

+1

我认为这样做会感谢! – nodejsj 2014-09-18 22:51:06

相关问题