phpsocketio使用入门手册
PHPSocket.IO 是 socket.IO 的php版本,基于workerman开发。用于替代socket.IO服务端,方便用PHP开发socket.IO即时通讯应用。
一、服务端和客户端连接
<?php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; use PHPSocketIO\SocketIO; // 创建socket.io服务端,监听3120端口 $io = new SocketIO(3120); // 当有客户端连接时打印一行文字 $io->on('connection', function($socket)use($io){ echo "new connection coming\n"; }); Worker::runAll();
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/socket.io.min.js"></script> <script> // 如果服务端不在本机,请把127.0.0.1改成服务端ip var socket = io('http://127.0.0.1:3120'); // 当连接服务端成功时触发connect默认事件 socket.on('connect', function(){ console.log('connect success'); }); </script>
二、自定义事件
socket.io主要是通过事件来进行通讯交互的。
socket连接除了自带的connect,message,disconnect三个事件以外,在服务端和客户端开发者可以自定义其它事件。
服务端和客户端都通过emit方法触发对端的事件。
例如下面的代码在服务端定义了一个chat message事件,事件参数为$msg。
<?php require_once __DIR__ . '/vendor/autoload.php'; use Workerman\Worker; use PHPSocketIO\SocketIO; $io = new SocketIO(3120); // 当有客户端连接时 $io->on('connection', function($socket)use($io){ // 定义chat message事件回调函数 $socket->on('chat message', function($msg)use($io){ // 触发所有客户端定义的chat message from server事件 $io->emit('chat message from server', $msg); }); }); Worker::runAll();
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/socket.io.min.js"></script> <script> // 连接服务端 var socket = io('http://127.0.0.1:3120'); // 触发服务端的chat message事件 socket.emit('chat message', '这个是消息内容...'); // 服务端通过emit('chat message from server', $msg)触发客户端的chat message from server事件 socket.on('chat message from server', function(msg){ console.log('get message:' + msg + ' from server'); }); </script>
点击查看剩余70%
网友评论0