物联网通讯之Swoole创建TCP服务器,并与调试工具进行通讯

大家好,我是小智。

上篇文章讲解了Swoole如何创建WebSocket服务器,今天我们讲讲如何创建TCP服务器。

swoole创建TCP服务器特简单:

一、创建TcpServer.php

<?php
//创建Server对象,监听 localhost:9501端口
$serv = new Swoole\Server("localhost", 39001); 
$serv->on('WorkerStart', function($serv, $worker_id) {
	echo "worker start\r\n";	
});
//监听连接进入事件
$serv->on('Connect', function ($serv, $fd) { 
 echo "Client: Connect.\n";
});
//监听数据接收事件
$serv->on('Receive', function ($serv, $fd, $from_id, $data) {
	var_dump($data);
 $serv->send($fd, "Server: ".$data);
});
//监听连接关闭事件
$serv->on('Close', function ($serv, $fd) {
 echo "Client: Close.\n";
});
//启动服务器
$serv->start(); 

二、调试TcpServer

打开“黄兄”,配置好协义类型、IP、端口,如下图:

 配置黄兄

点击连接,如果亮红灯则说明,TCP服务已经成功建立。

我们来看看动图,效果如下:

 调试tcp服务

朋友们不要把TCP服务与上期的Websocket服务搞混了,它们看起来好像有点相似,但应用场景可不一样。

物联网通讯之Swoole创建Websocket服务器,一切从简单开始

朋友们可以从小智的调试工具可以看出来,TCP服务需要用TCP调试客户端,而Websocket则需要用websocket调试客户端,也就是说,两种服务使用的协议是有所区别的。

今期就到这里啦,下一期文章我们结合这两种服务实现一个简单的物联网,朋友们请多多关注哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在ThinkPHP6中,如果你已经建立了Swoole TCP客户端的长连接,你可以在后续的请求中重复使用该连接进行通信。下面是一个简单的示例: 假设你已经建立了一个长连接并保存在某个全局变量中,可以在需要发送请求的地方使用该连接进行通信。 ```php <?php namespace app\controller; use Swoole\Coroutine\Client; class TcpClient { private $client; // 保存TCP客户端连接的变量 public function index() { // 首次发送请求,建立长连接 if (!$this->client) { $this->client = new Client(SWOOLE_SOCK_TCP); // 连接到服务器 if (!$this->client->connect('127.0.0.1', 9501, 0.5)) { return '连接服务器失败'; } } // 发送数据 $this->client->send('Hello, Server!'); // 接收服务器返回的数据 $response = $this->client->recv(); if ($response === false) { return '接收数据失败'; } // 发送第二个请求 $this->client->send('Hello again, Server!'); // 接收服务器返回的数据 $response2 = $this->client->recv(); if ($response2 === false) { return '接收数据失败'; } return [$response, $response2]; } public function __destruct() { // 在控制器销毁时关闭连接 if ($this->client) { $this->client->close(); } } } ``` 在上述示例中,我们在`index`方法中首次发送请求时建立了长连接,并将连接保存在`$this->client`变量中。然后,我们可以重复使用该连接发送请求并接收响应。在控制器销毁时,我们通过`__destruct`方法关闭连接。 请根据你的实际需求进行相应的修改和补充,确保长连接的正确使用和关闭。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智云说

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值