微信小程序+服务器 利用Swoole的TCP实现简单的交互功能

2 篇文章 0 订阅
1 篇文章 0 订阅

1、服务器

<?php
    //创建Server对象,监听 127.0.0.1:9501 端口
    $server = new Swoole\Server('0.0.0.0', 5901);
     
     
    //监听连接进入事件
    $server->on('Connect', function ($server, $fd) {
        echo "有用户链接.\n";
    });
     
    //监听数据接收事件
    $server->on('Receive', function ($server, $fd, $reactor_id, $data) {
        echo "$data.\n";
        $server->send($fd, "111");
    });
     
     
    //监听连接关闭事件
    $server->on('Close', function ($server, $fd) {
        echo "有用户关闭.\n";
    });
     
     
    $server->set(array(
        'heartbeat_check_interval' => 5,
        'heartbeat_idle_time' => 10,
    ));
     
    //启动服务器
    $server->start();
?>

2、启动这个php文件

  1. cd到这个文件的目录下运行   php server.php
  2. 这时他可能会报这个错误
  3. 这是端口被占用了 只需要用 netstat -tunlp 这个命令查看一下
  4. 找到后, 我们使用 kill 3354512 杀死这个进程,之后在执行  php server.php 就好了

3、客户端,这个可以略过

<?php
 
    $client = new swoole_client(SWOOLE_SOCK_TCP);
    if(!$client->connect('139.196.89.41',9501))
    {
        echo "连接失败\n";
        exit;
    }
    $client->send("1111");
    $ret = $client->recv();

4、小程序

<button bindtap="send">点击发送消息</button>
const tcp = wx.createTCPSocket()
/**
* 生命周期函数--监听页面加载
* 进入页面,连接服务端
*/
onLoad: function (options) {
    tcp.connect({address: '47.103.124.141', port: 5901})
    tcp.onConnect(function(e){
        console.log('链接成功')
    })
    tcp.onClose(function(e){
        console.log('链接关闭')
    })
    tcp.onMessage(function(e){
        var buffer = e.message;
        var dataview = new DataView(buffer);
        var ints = new Uint8Array(buffer.byteLength);
        var str = '';
        for (var i = 0; i < ints.length; i++) {
            str += String.fromCharCode(dataview.getUint8(i));
        }
    console.log(str);
    })
},
//发送数据
send(){
    let infor = this.data.infor
    tcp.write(infor);
},

5、小程序测试

  1. 第一个是页面加载时连接成功后给出的提示消息
  2. 第二个是点击发送,成功后服务器返回的消息 
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值