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

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

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

  第五步,使用vb.net实现客户端访问:

<span style="color: #0000ff;">Public <span style="color: #0000ff;">Class<span style="color: #000000;"> SynchronousSocketClient
<span style="color: #0000ff;">Protected <span style="color: #0000ff;">Shared port <span style="color: #0000ff;">As <span style="color: #0000ff;">Integer = <span style="color: #800080;">9501
<span style="color: #0000ff;">Protected <span style="color: #0000ff;">Shared host <span style="color: #0000ff;">As <span style="color: #0000ff;">String = <span style="color: #800000;">"<span style="color: #800000;">localhost<span style="color: #800000;">"

<span style="color: #0000ff;"&gt;Private</span> <span style="color: #0000ff;"&gt;Shared</span> sender <span style="color: #0000ff;"&gt;As</span><span style="color: #000000;"&gt; Socket
</span><span style="color: #0000ff;"&gt;Public</span> <span style="color: #0000ff;"&gt;Shared</span> bytes(<span style="color: #800080;"&gt;1024</span>) <span style="color: #0000ff;"&gt;As</span> <span style="color: #0000ff;"&gt;Byte</span>
<span style="color: #008000;"&gt;'</span><span style="color: #008000;"&gt; A way to the connect to the server</span>
<span style="color: #0000ff;"&gt;Public</span> <span style="color: #0000ff;"&gt;Shared</span> <span style="color: #0000ff;"&gt;Sub</span><span style="color: #000000;"&gt; Main()
    </span><span style="color: #0000ff;"&gt;If</span> (<span style="color: #0000ff;"&gt;IsNothing</span>(sender)) <span style="color: #0000ff;"&gt;OrElse</span> <span style="color: #0000ff;"&gt;Not</span> sender.Connected <span style="color: #0000ff;"&gt;Then</span>
        <span style="color: #0000ff;"&gt;If</span> <span style="color: #0000ff;"&gt;Not</span> <span style="color: #0000ff;"&gt;IsNothing</span>(Form1.TextBox1.Text) <span style="color: #0000ff;"&gt;Then</span><span style="color: #000000;"&gt;
            host </span>=<span style="color: #000000;"&gt; Form1.TextBox1.Text
        </span><span style="color: #0000ff;"&gt;End</span> <span style="color: #0000ff;"&gt;If</span>
        <span style="color: #0000ff;"&gt;If</span> (Form1.TextBox2.Text) <span style="color: #0000ff;"&gt;Then</span><span style="color: #000000;"&gt;
            port </span>=<span style="color: #000000;"&gt; Form1.TextBox2.Text
        </span><span style="color: #0000ff;"&gt;End</span> <span style="color: #0000ff;"&gt;If</span><span style="color: #000000;"&gt;
        sender </span>=<span style="color: #000000;"&gt; ConnectSocket(host,port)
    </span><span style="color: #0000ff;"&gt;End</span> <span style="color: #0000ff;"&gt;If</span>

<span style="color: #0000ff;"&gt;End Sub</span>
<span style="color: #008000;"&gt;'</span><span style="color: #008000;"&gt; send something to server</span>
<span style="color: #0000ff;"&gt;Public</span> <span style="color: #0000ff;"&gt;Shared</span> <span style="color: #0000ff;"&gt;Sub</span><span style="color: #000000;"&gt; send()
    </span><span style="color: #0000ff;"&gt;If</span> (<span style="color: #0000ff;"&gt;IsNothing</span>(sender)) <span style="color: #0000ff;"&gt;OrElse</span> <span style="color: #0000ff;"&gt;Not</span> sender.Connected <span style="color: #0000ff;"&gt;Then</span>
        <span style="color: #0000ff;"&gt;If</span> <span style="color: #0000ff;"&gt;Not</span> <span style="color: #0000ff;"&gt;IsNothing</span>(Form1.TextBox1.Text) <span style="color: #0000ff;"&gt;Then</span><span style="color: #000000;"&gt;
            host </span>=<span style="color: #000000;"&gt; Form1.TextBox1.Text
        </span><span style="color: #0000ff;"&gt;End</span> <span style="color: #0000ff;"&gt;If</span>
        <span style="color: #0000ff;"&gt;If</span> (Form1.TextBox2.Text) <span style="color: #0000ff;"&gt;Then</span><span style="color: #000000;"&gt;
            port </span>=<span style="color: #000000;"&gt; Form1.TextBox2.Text
        </span><span style="color: #0000ff;"&gt;End</span> <span style="color: #0000ff;"&gt;If</span><span style="color: #000000;"&gt;
        sender </span>=<span style="color: #000000;"&gt; ConnectSocket(host,port)
    </span><span style="color: #0000ff;"&gt;End</span> <span style="color: #0000ff;"&gt;If</span>
    <span style="color: #008000;"&gt;'</span><span style="color: #008000;"&gt; Encode the data string into a byte array.</span>
    <span style="color: #0000ff;"&gt;Dim</span> msg <span style="color: #0000ff;"&gt;As</span> <span style="color: #0000ff;"&gt;Byte</span>() =<span style="color: #000000;"&gt; Encoding.ASCII.GetBytes(Form1.myContent.Text)

    </span><span style="color: #008000;"&gt;'</span><span style="color: #008000;"&gt; Send the data through the socket.</span>
    <span style="color: #0000ff;"&gt;Dim</span> bytesSent <span style="color: #0000ff;"&gt;As</span> <span style="color: #0000ff;"&gt;Integer</span> =<span style="color: #000000;"&gt; sender.Send(msg)

    </span><span style="color: #008000;"&gt;'</span><span style="color: #008000;"&gt; Receive the response from the remote device.</span>
    <span style="color: #0000ff;"&gt;Dim</span> bytesRec <span style="color: #0000ff;"&gt;As</span> <span style="color: #0000ff;"&gt;Integer</span> =<span style="color: #000000;"&gt; sender.Receive(bytes)
    Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;ServerReturn = {0}</span><span style="color: #800000;"&gt;"</span>,Encoding.ASCII.GetString(bytes,<span style="color: #800080;"&gt;0</span><span style="color: #000000;"&gt;,bytesRec))
    Form1.infoText.Text </span>&amp;= <span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;ServerReturn = </span><span style="color: #800000;"&gt;"</span> &amp; Encoding.ASCII.GetString(bytes,<span style="color: #800080;"&gt;0</span>,bytesRec) &amp;<span style="color: #000000;"&gt; vbNewLine
</span><span style="color: #0000ff;"&gt;End Sub</span>
<span style="color: #008000;"&gt;'</span><span style="color: #008000;"&gt; connect initialize</span>
<span style="color: #0000ff;"&gt;Private</span> <span style="color: #0000ff;"&gt;Shared</span> <span style="color: #0000ff;"&gt;Function</span> ConnectSocket(<span style="color: #0000ff;"&gt;ByVal</span> host <span style="color: #0000ff;"&gt;As</span> <span style="color: #0000ff;"&gt;String</span>,<span style="color: #0000ff;"&gt;ByVal</span> port <span style="color: #0000ff;"&gt;As</span> <span style="color: #0000ff;"&gt;Integer</span>) <span style="color: #0000ff;"&gt;As</span> Socket <span style="color: #008000;"&gt;'</span><span style="color: #008000;"&gt;创建连接 </span>
    <span style="color: #0000ff;"&gt;Dim</span> s <span style="color: #0000ff;"&gt;As</span> Socket = <span style="color: #0000ff;"&gt;Nothing</span>
    <span style="color: #0000ff;"&gt;Dim</span> hostEntry <span style="color: #0000ff;"&gt;As</span> IPHostEntry = <span style="color: #0000ff;"&gt;Nothing</span>

    <span style="color: #008000;"&gt;'</span><span style="color: #008000;"&gt;address = System.Net.IPAddress.Parse(host)</span>
    <span style="color: #0000ff;"&gt;Dim</span> ipHostInfo <span style="color: #0000ff;"&gt;As</span> IPHostEntry =<span style="color: #000000;"&gt; Dns.Resolve(host)
    </span><span style="color: #0000ff;"&gt;Dim</span> address <span style="color: #0000ff;"&gt;As</span> IPAddress = ipHostInfo.AddressList(<span style="color: #800080;"&gt;0</span><span style="color: #000000;"&gt;)
    </span><span style="color: #0000ff;"&gt;Dim</span> endPoint <span style="color: #0000ff;"&gt;As</span> <span style="color: #0000ff;"&gt;New</span><span style="color: #000000;"&gt; IPEndPoint(address,port)
    </span><span style="color: #0000ff;"&gt;Dim</span> tempSocket <span style="color: #0000ff;"&gt;As</span> <span style="color: #0000ff;"&gt;New</span><span style="color: #000000;"&gt; Socket(endPoint.AddressFamily,SocketType.Stream,ProtocolType.Tcp)
    tempSocket.Connect(endPoint)

    </span><span style="color: #0000ff;"&gt;If</span> tempSocket.Connected <span style="color: #0000ff;"&gt;Then</span><span style="color: #000000;"&gt;
        s </span>=<span style="color: #000000;"&gt; tempSocket
        Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;Socket connected to {0}</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;,tempSocket.RemoteEndPoint.ToString())
        Form1.infoText.Text </span>&amp;= <span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;Socket connected to </span><span style="color: #800000;"&gt;"</span> &amp;<span style="color: #000000;"&gt; tempSocket.RemoteEndPoint.ToString()
    </span><span style="color: #0000ff;"&gt;End</span> <span style="color: #0000ff;"&gt;If</span>
    <span style="color: #0000ff;"&gt;Return</span><span style="color: #000000;"&gt; s
</span><span style="color: #0000ff;"&gt;End Function</span>
<span style="color: #008000;"&gt;'</span><span style="color: #008000;"&gt; close socket</span>
<span style="color: #0000ff;"&gt;Public</span> <span style="color: #0000ff;"&gt;Shared</span> <span style="color: #0000ff;"&gt;Sub</span><span style="color: #000000;"&gt; closeSocket()
    </span><span style="color: #0000ff;"&gt;If</span> (sender.Connected) <span style="color: #0000ff;"&gt;Then</span><span style="color: #000000;"&gt;
        Form1.infoText.Text </span>&amp;= <span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;Socket closed : </span><span style="color: #800000;"&gt;"</span> &amp; sender.RemoteEndPoint.ToString() &amp;<span style="color: #000000;"&gt; vbNewLine
        sender.Shutdown(SocketShutdown.Both)
        sender.Close()
    </span><span style="color: #0000ff;"&gt;End</span> <span style="color: #0000ff;"&gt;If</span>
<span style="color: #0000ff;"&gt;End Sub</span>

<span style="color: #0000ff;">End Class <span style="color: #008000;">'<span style="color: #008000;">SynchronousSocketClient

如上是访问连接服务器的代码,触发代码则是在另一个页面进行的,界面如下:

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

运行后效果如下:

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

(编辑:衡阳站长网)

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

热点阅读