<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>运达&#039;s  blog &#187; workman</title>
	<atom:link href="https://www.yunda51.com/?feed=rss2&#038;tag=workman" rel="self" type="application/rss+xml" />
	<link>https://www.yunda51.com</link>
	<description>运达的博客</description>
	<lastBuildDate>Wed, 12 Nov 2025 07:58:26 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0.19</generator>
	<item>
		<title>linux下Thinkphp6+workerman+gateway基本简介与环境搭建</title>
		<link>https://www.yunda51.com/?p=1942</link>
		<comments>https://www.yunda51.com/?p=1942#comments</comments>
		<pubDate>Tue, 13 Sep 2022 10:57:11 +0000</pubDate>
		<dc:creator><![CDATA[运达]]></dc:creator>
				<category><![CDATA[php技术]]></category>
		<category><![CDATA[Thinkphp]]></category>
		<category><![CDATA[socket]]></category>
		<category><![CDATA[Thinkphp6]]></category>
		<category><![CDATA[workman]]></category>

		<guid isPermaLink="false">http://www.yunda51.com/?p=1942</guid>
		<description><![CDATA[1、Composer安装与基本使用 https://docs.phpcomposer.com/00-intro<a href="https://www.yunda51.com/?p=1942" class="read-more">Continue Reading</a>]]></description>
				<content:encoded><![CDATA[<h2>1、Composer安装与基本使用</h2>
<p><a href="https://docs.phpcomposer.com/00-intro.html">https://docs.phpcomposer.com/00-intro.html</a></p>
<p>1）、下载</p>
<pre class="wp-code-highlight prettyprint"># curl -sS https://getcomposer.org/installer | php
</pre>
<p>或者</p>
<pre class="wp-code-highlight prettyprint"># php -r &quot;copy(&#039;https://install.phpcomposer.com/installer&#039;, &#039;composer-setup.php&#039;);
# php composer-setup.php
</pre>
<p>2）、移动 composer.phar，以便 composer 能进行全局调用：</p>
<pre class="wp-code-highlight prettyprint"># mv composer.phar /usr/local/bin/composer
</pre>
<p>3）、切换为国内镜像：</p>
<pre class="wp-code-highlight prettyprint"># composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
</pre>
<p>4）、更新 composer：</p>
<pre class="wp-code-highlight prettyprint"># composer selfupdate
</pre>
<p>https://docs.phpcomposer.com/01-basic-usage.html</p>
<p><strong>2、安装thinkphp6</strong></p>
<p>安装稳定版</p>
<pre class="wp-code-highlight prettyprint">composer create-project topthink/think tp6
</pre>
<p><a href="http://www.yunda51.com/wp-content/uploads/2022/09/1.png"><img class="alignnone size-full wp-image-1943" src="http://www.yunda51.com/wp-content/uploads/2022/09/1.png" alt="1" width="830" height="160" /></a><br />
查看配置文件是否禁用了proc_open函数</p>
<p>putenv</p>
<hr />
<p><a href="http://www.yunda51.com/wp-content/uploads/2022/09/2.png"><img class="alignnone size-full wp-image-1944" src="http://www.yunda51.com/wp-content/uploads/2022/09/2.png" alt="2" width="830" height="386" /></a><br />
<a href="http://www.yunda51.com/wp-content/uploads/2022/09/3.png"><img class="alignnone size-full wp-image-1945" src="http://www.yunda51.com/wp-content/uploads/2022/09/3.png" alt="3" width="830" height="838" /></a></p>
<p><strong>安全PHP要求&gt;=7.1.0</strong></p>
<p><strong>3、Workerman简介与安装</strong></p>
<pre class="wp-code-highlight prettyprint">简介：引用官方的
Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室
服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。 支持TCP长连接，支持Websocket、HTTP等协议，支持自定义协议。
基于workerman开发者可以更专注于业务逻辑开发，不必再为PHP Socket底层开发而烦恼。
</pre>
<p>其它介绍</p>
<p>http://doc.workerman.net/</p>
<p>http://doc2.workerman.net/</p>
<p>https://web.popoim.cn/im/web</p>
<p>https://demo.popoim.cn/im/h5/</p>
<p>安装：</p>
<pre class="wp-code-highlight prettyprint">composer require topthink/think-worker
</pre>
<p>安装gateway-worker<br />
<a href="http://www.yunda51.com/wp-content/uploads/2022/09/4.png"><img src="http://www.yunda51.com/wp-content/uploads/2022/09/4.png" alt="4" width="828" height="146" class="alignnone size-full wp-image-1946" /></a></p>
<p>须要安装fileinfo扩展<br />
<a href="http://www.yunda51.com/wp-content/uploads/2022/09/5.png"><img src="http://www.yunda51.com/wp-content/uploads/2022/09/5.png" alt="5" width="830" height="582" class="alignnone size-full wp-image-1947" /></a></p>
<p><strong>4、运行workerman作为服务端（socketServer）</strong></p>
<pre class="wp-code-highlight prettyprint">
php think worker:server
</pre>
<p><a href="http://www.yunda51.com/wp-content/uploads/2022/09/6.png"><img src="http://www.yunda51.com/wp-content/uploads/2022/09/6.png" alt="6" width="830" height="492" class="alignnone size-full wp-image-1948" /></a></p>
<p>pcntl相关函数</p>
<p>https://www.php.net/manual/zh/book.pcntl.php</p>
<p><strong>5、连接websocket</strong><br />
客户端代码 ：</p>
<pre class="wp-code-highlight prettyprint">
ws = new WebSocket(&quot;ws://xxx.xxx.xxx.xxx:9999&quot;);
ws.onopen = function() {
    alert(&quot;连接成功&quot;);
    ws.send(&#039;tom&#039;);
    alert(&quot;给服务端发送一个字符串：tom&quot;);
};
ws.onmessage = function(e) {
    alert(&quot;收到服务端的消息：&quot; + e.data);
};

</pre>
<p>连接不上的原因十有八九<br />
防火墙命令：<br />
查看状态：systemctl status firewalld.service<br />
关闭firewall：systemctl stop firewalld.service<br />
启动：systemctl start firewalld.service<br />
重启：systemctl restart firewalld.service</p>
<p>查看已开放端口：<br />
firewall-cmd --list-ports<br />
开放端口：<br />
firewall-cmd --zone=public --add-port=9999/tcp --permanent</p>
<pre class="wp-code-highlight prettyprint">
–zone #作用域
–add-port=80/tcp #添加端口，格式为：端口/通讯协议
–permanent #永久生效，没有此参数重启后失效
</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.yunda51.com/?feed=rss2&#038;p=1942</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
