首先贴上参考的教程:
根据①实现了简单的前后端交互,但是,参考②和③5,我针对我的情况成功的增加了两点:
1.允许服务器返回JSON格式的数据
2.获取客户端发送的数据(这一条有许多教程都实现了,比如拿聊天室,或者这篇教程的大佬
贴一张websocket的工作原理(from②):
再开始之前,先确认,你的php否开启了sockets扩展:
websocket.php:
$address = "127.0.0.1";
$port = 9999; //调试的时候,可以多换端口来测试程序!
set_time_limit(0);
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_block($sock);
socket_bind($sock, $address, $port);
socket_listen($sock, 4);
do
{
echo "Waiting for Connection...n";
$msgsock = socket_accept($sock);
echo "Waiting for Request...n";
$buf = socket_read($msgsock, 8192); //读取请求
echo "Request Received: $bufn";
$response = hand_shake($buf);
socket_write($msgsock,$response,strlen($response)); //发送响应
//正式开始通信...
$buf = socket_read($msgsock, 8192); //获取前端发送的消息
//这里我用了③中的编码和解码方法mask和umaske,原来的无法正确的接收到客户端发的信息,乱码,
//而且无法将json数据编码发送给前端,我是没成功。
if (unmask($buf) == 'getPeerInfo') {
//我要返回的json数据
$msg = '[{
"Addr": "/ip4/95.179.192.99/tcp/10001",
"Peer": "QmQFy5XWmtZ7U2nZu198qYW8LefvrBK3Y9b3V1MqUfuoRT",
"Latency": "",