PHP学习心得


玩转网络通信引擎

<h2>启动swoole服务,已经好的tcp.php文件</h2> <ul> <li> <p>进入到tcp.php文件所有目录,执行tcp.php文件,在shell连接终端打开一个“窗口1”,启动一个swoole服务</p> <pre><code class="language-shell">php tcp.php </code></pre> </li> <li> <p>使用客户端进行连接,再使用shell连接终端打开一个“窗口2&quot;</p> <pre><code class="language-shell">telnet 127.0.0.1 9501</code></pre> <ul> <li>回到“窗口1”进行查看,会显示:</li> </ul> <blockquote> <p>Client: 6 - 1-Connect.</p> <p>Client: 6 对应 tcp.php 到的代码为</p> <p>echo &quot;Client: {$reactor_id} - {$fd}-Connect.\n&quot;;</p> </blockquote> <ul> <li>再打开一个“窗口3”,再次回到“窗口2”中查看,会显示:</li> </ul> <blockquote> <p>Client: 6 - 1-Connect.</p> <p>Client: 7 - 2-Connect.</p> </blockquote> </li> <li> <p>如果执行tcp.php文件抛异常,请查看端口是否有关闭,未关闭,杀死这个进程即可关闭这个端口号</p> <pre><code class="language-shell">netstat -anp | grep 9501 # kill 进程号 php tcp.php</code></pre> </li> </ul> <h2>查看进程号</h2> <pre><code class="language-shell">ps aft | grep tcp.php # worker_num 设置数字几,tcp.php的几进程就是几个 # 杀死tcp.php进程,使用ctrl+C快捷键</code></pre> <h2>websocket</h2> <ul> <li>websocket协议是基于TCP的一种新的网络协议。</li> <li>它实现了浏览器与服务器全双工(full-duplex)通信,允许服务器主动发送信息给客服端。</li> </ul> <h2>为什么需要使用websocket</h2> <ul> <li>http的通信只能由客户端发起</li> </ul> <h2>websocket特点</h2> <ul> <li>建立在TCP协议之上</li> <li>性能开销小,通信高效</li> <li>客户端可以与任意服务器通信</li> <li>协议标识符 ws wss</li> <li>持久化网络通信协议</li> </ul> <h2>Swoole task任务使用</h2> <ul> <li>使用场景 <ul> <li>执行耗时的操作(发送邮件,广播等)</li> </ul></li> <li>如何使用 <ul> <li>onTask, onFinish, 设置tast_worker_num</li> </ul></li> </ul>

页面列表

ITEM_HTML