websocket 后端 php,PHP第一篇:PHP WebSocket实现前后端数据交互,亲测可用(windows+ apache2.4 +php5.6 )-Go语言中文社区...

本文介绍了如何使用PHP实现WebSocket服务器,实现与前端的数据交互。通过开启sockets扩展,创建服务器端并监听指定端口,处理客户端连接和数据收发。文章详细展示了PHP处理WebSocket握手协议、解码和编码数据的代码,以及客户端HTML页面的实现,能够根据前端请求返回JSON数据。
摘要由CSDN通过智能技术生成

首先贴上参考的教程:

根据①实现了简单的前后端交互,但是,参考②和③5,我针对我的情况成功的增加了两点:

1.允许服务器返回JSON格式的数据

2.获取客户端发送的数据(这一条有许多教程都实现了,比如拿聊天室,或者这篇教程的大佬

贴一张websocket的工作原理(from②):

4993e823f5760a416cfd5d01c4b012a8.png

再开始之前,先确认,你的php否开启了sockets扩展:

e319eb161cceecc2f479ad9ffce78ad7.png

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": "",

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值