加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

使用swoole进行消息推送通知,配合vb.net进行客户端开发一样爽[

发布时间:2021-01-19 09:04:16 所属栏目:Linux 来源:网络整理
导读:在以前的项目中,就曾听说过swoole的大名,想用来进行消息推送,但是当时只是有了初步的了解,并不敢大胆的运用到线上产品。所谓?识不足则多虑,威不足则多怒、所以就是怕,只能跟领导说了运用极光的推送功能,而且还说出了一定的理由,领导自然也只有相信了
副标题[/!--empirenews.page--]

  在以前的项目中,就曾听说过swoole的大名,想用来进行消息推送,但是当时只是有了初步的了解,并不敢大胆的运用到线上产品。所谓?识不足则多虑,威不足则多怒、所以就是怕,只能跟领导说了运用极光的推送功能,而且还说出了一定的理由,领导自然也只有相信了,那就用极光推送吧!

  最近闲来无事,又重新温习了一下swoole的消息通知功能,虽然在项目开发当时,也曾实现过简单的操作的,但是这次温习更加深了学习,配合vb.net进行开发,感觉还是棒棒哒,下面是一套实现过程,如有需要参考,请拿去,不谢!

  首先,我的开发平台是windows,虽然本人也装有virtual box虚拟机,但是那玩意儿太耗内存cpu了,开起来搞实在不想搞。所以,就用了cygwin进行配置开发环境搭建,这里我就不说具体安装步骤了,给个链接吧,一步步按着操作就行了。 。 ps: 如果你win系统里已经安装了一套wamp环境,在cygwin中使用php或其他和win有相同名称命令时,请记得使用全路径 如:/bin/php index.php,/bin/find / -name "init*"

  第二步、编写php服务端程序,命名 test_tcp_server.php,代码如下:

set('worker_num' => 2, true,//是否作为守护进程,玩玩就不要开启这东西了,不然你都不知道跑到哪里去了 ->on('connect','my_onConnect'->on('receive','my_onReceive'->on('close','my_onClose' "swoole_server is running on 127.0.0.1 9501 n"-></span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;receive msg respond</span> <span style="color: #0000ff;"&gt;function</span> my_onReceive (<span style="color: #800080;"&gt;$serv</span>,<span style="color: #800080;"&gt;$fd</span>,<span style="color: #800080;"&gt;$from_id</span>,<span style="color: #800080;"&gt;$data</span><span style="color: #000000;"&gt;) { </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; var_dump($serv);</span> <span style="color: #800080;"&gt;$data</span> = <span style="color: #008080;"&gt;trim</span>(<span style="color: #800080;"&gt;$data</span><span style="color: #000000;"&gt;); </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 发送给谁,如:@id msg...,最好的当然是使用redis或者数据库存入号码并生成一个映射了,不过玩玩就不要认真了</span> <span style="color: #0000ff;"&gt;if</span>(<span style="color: #008080;"&gt;substr</span>(<span style="color: #800080;"&gt;$data</span>,1) == '@'<span style="color: #000000;"&gt;){ </span><span style="color: #800080;"&gt;$splitStart</span> = <span style="color: #008080;"&gt;strpos</span>(<span style="color: #800080;"&gt;$data</span>,' '<span style="color: #000000;"&gt;); </span><span style="color: #800080;"&gt;$toUserId</span> = <span style="color: #008080;"&gt;substr</span>(<span style="color: #800080;"&gt;$data</span>,1,<span style="color: #800080;"&gt;$splitStart</span> - 1<span style="color: #000000;"&gt;); </span><span style="color: #0000ff;"&gt;echo</span> 'Send to:' . <span style="color: #800080;"&gt;$toUserId</span> . ';'<span style="color: #000000;"&gt;; </span><span style="color: #800080;"&gt;$content</span> = <span style="color: #008080;"&gt;substr</span>(<span style="color: #800080;"&gt;$data</span>,<span style="color: #800080;"&gt;$splitStart</span> + 1<span style="color: #000000;"&gt;); </span><span style="color: #0000ff;"&gt;if</span>(<span style="color: #008080;"&gt;is_numeric</span>(<span style="color: #800080;"&gt;$toUserId</span><span style="color: #000000;"&gt;)){ </span><span style="color: #800080;"&gt;$serv</span>->send(<span style="color: #800080;"&gt;$toUserId</span>,"From Client[<span style="color: #800080;"&gt;$fd</span>@<span style="color: #800080;"&gt;$from_id</span>]:" . <span style="color: #800080;"&gt;$content</span><span style="color: #000000;"&gt;); }</span><span style="color: #0000ff;"&gt;elseif</span>(<span style="color: #008080;"&gt;strtolower</span>(<span style="color: #800080;"&gt;$toUserId</span>) == 'all'<span style="color: #000000;"&gt;){ broadcast(</span><span style="color: #800080;"&gt;$serv</span>,<span style="color: #800080;"&gt;$content</span><span style="color: #000000;"&gt;); }</span><span style="color: #0000ff;"&gt;else</span><span style="color: #000000;"&gt;{ </span><span style="color: #800080;"&gt;$serv</span>->send(<span style="color: #800080;"&gt;$fd</span>,'Swoole: Unkown to user ' . <span style="color: #008080;"&gt;strtolower</span>(<span style="color: #800080;"&gt;$toUserId</span>) . ' infomation.'<span style="color: #000000;"&gt;); } }</span><span style="color: #0000ff;"&gt;else</span><span style="color: #000000;"&gt;{ </span><span style="color: #0000ff;"&gt;echo</span> "From Client[<span style="color: #800080;"&gt;$fd</span>@<span style="color: #800080;"&gt;$from_id</span>],received data: " . <span style="color: #800080;"&gt;$data</span> . <span style="color: #ff00ff;"&gt;PHP_EOL</span><span style="color: #000000;"&gt;; </span><span style="color: #800080;"&gt;$serv</span>->send(<span style="color: #800080;"&gt;$fd</span>,'Swoole: '.<span style="color: #800080;"&gt;$data</span><span style="color: #000000;"&gt;); } </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; $serv->close($fd);</span>

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读