{"id":91,"date":"2023-01-04T09:06:32","date_gmt":"2023-01-04T01:06:32","guid":{"rendered":"https:\/\/mianka.xyz\/?p=90"},"modified":"2023-01-04T09:23:01","modified_gmt":"2023-01-04T01:23:01","slug":"thinkphp6swoole","status":"publish","type":"post","link":"https:\/\/www.mianka.xyz\/?p=91","title":{"rendered":"thinkphp6\u4f7f\u7528swoole\u6b65\u9aa4\u5b9e\u4f8b"},"content":{"rendered":"<p>\u4e00\uff0c\u7ed9PHP\u8f6f\u4ef6\u4e0b\u8f7dswoole\u63d2\u4ef6<\/p>\n<p>\u4e8c\uff0c\u4f7f\u7528thinkphp6\u7684\u81ea\u5b9a\u4e49\u6307\u4ee4\u529f\u80fd<\/p>\n<pre class=\"prism-highlight prism-language-powershell\">php&nbsp;think&nbsp;make:command&nbsp;Tcp&nbsp;tcp<\/pre>\n<p>\u4e09\uff0c\u4fee\u6539Tcp.php\u6587\u4ef6\uff08\u4f4d\u4e8e\uff1aapp\\command\\Tcp\uff09<\/p>\n<pre class=\"prism-highlight prism-language-php\">&lt;?php\nnamespace&nbsp;app\\command;\nuse&nbsp;think\\console\\Command;\nuse&nbsp;think\\console\\Input;\nuse&nbsp;think\\console\\input\\Argument;\nuse&nbsp;think\\console\\input\\Option;\nuse&nbsp;think\\console\\Output;\nuse&nbsp;Swoole;\nuse&nbsp;think\\facade\\Request;\nuse&nbsp;app\\model\\User;\nuse&nbsp;think\\facade\\Event;\nclass&nbsp;Tcp&nbsp;extends&nbsp;Command\n{\n&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;function&nbsp;configure()\n&nbsp;&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;setName(&#39;tcp&#39;)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;addArgument(&#39;name&#39;,&nbsp;Argument::OPTIONAL,&nbsp;&quot;your&nbsp;name&quot;)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;addOption(&#39;city&#39;,&nbsp;null,&nbsp;Option::VALUE_REQUIRED,&nbsp;&#39;city&nbsp;name&#39;)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt;setDescription(&#39;Say&nbsp;Hello&#39;);\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;function&nbsp;execute(Input&nbsp;$input,&nbsp;Output&nbsp;$output)\n&nbsp;&nbsp;&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u521b\u5efaServer\u5bf9\u8c61\uff0c\u76d1\u542c&nbsp;127.0.0.1:9501&nbsp;\u7aef\u53e3\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$server&nbsp;=&nbsp;new&nbsp;Swoole\\Server(&#39;127.0.0.1&#39;,&nbsp;9501);\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u76d1\u542c\u8fde\u63a5\u8fdb\u5165\u4e8b\u4ef6\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$server-&gt;on(&#39;Connect&#39;,&nbsp;function&nbsp;($server,&nbsp;$fd)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;Client:&nbsp;Connect.\\n&quot;;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u76d1\u542c\u6570\u636e\u63a5\u6536\u4e8b\u4ef6\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$server-&gt;on(&#39;Receive&#39;,&nbsp;function&nbsp;($server,&nbsp;$fd,&nbsp;$reactor_id,&nbsp;$data)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$server-&gt;send($fd,&nbsp;&quot;Server:&nbsp;{$data}&quot;);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u76d1\u542c\u8fde\u63a5\u5173\u95ed\u4e8b\u4ef6\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$server-&gt;on(&#39;Close&#39;,&nbsp;function&nbsp;($server,&nbsp;$fd)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;&quot;Client:&nbsp;Close.\\n&quot;;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u542f\u52a8\u670d\u52a1\u5668\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$server-&gt;start();&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;}\n}<\/pre>\n<p>\u56db\uff0c\u914d\u7f6e\u4fee\u6539config\/console.php\u6587\u4ef6<\/p>\n<pre class=\"prism-highlight prism-language-php\">&lt;?php\nreturn&nbsp;[\n&nbsp;&nbsp;&nbsp;&nbsp;&#39;commands&#39;&nbsp;=&gt;&nbsp;[\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;tcp&#39;&nbsp;=&gt;&nbsp;&#39;app\\command\\Tcp&#39;,\n&nbsp;&nbsp;&nbsp;&nbsp;]\n];<\/pre>\n<p>\u4e94\uff0c\u67e5\u770b\u547d\u4ee4<\/p>\n<pre class=\"prism-highlight prism-language-powershell\">php&nbsp;think<\/pre>\n<p>\u516d\uff0c\u6267\u884c\u547d\u4ee4<\/p>\n<pre class=\"prism-highlight prism-language-powershell\">php&nbsp;think&nbsp;tcp<\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\uff0c\u7ed9PHP\u8f6f\u4ef6\u4e0b\u8f7dswoole\u63d2\u4ef6\u4e8c\uff0c\u4f7f\u7528thinkphp6\u7684\u81ea\u5b9a\u4e49\u6307\u4ee4\u529f\u80fdphpthi&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[9,23],"class_list":["post-91","post","type-post","status-publish","format-standard","hentry","category-phpbiji","tag-php","tag-swoole"],"_links":{"self":[{"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/posts\/91","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=91"}],"version-history":[{"count":0,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=\/wp\/v2\/posts\/91\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=91"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=91"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mianka.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=91"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}