thinkphp6集成workerman中GatewayWorker实现长链接和消息推送(一)

序言:

在国内php框架中thinkphp是使用最多的,同时thinkphp也提供了think-worker用于方便在项目中实现集成workerman,但是在我使用过程中发现在集成和启中的确比较便捷,但是在使用中出现了一些问题(可能是我个人能力的问题)1、在连接和启动上的确比较便捷,但是在实现向客户端推送信息较为困难。2、难以识别用户等问题。所以在诸多考虑下我选择基于workerman的GatewayWorker与thinkphp6进行搭配实现项目的搭建。

目的:

我的目的是搭建一个服务器用于实现物联网(基于esp8266以下称为“物联网终端”),通过thinkphp可以实现对物联网终端的控制,同时可以及时收集物联网终端的信息并通过网页H5、app、小程序实现展示和控制。

一、获取GatewayWorker

你可以快速通过以下链接获取GatewayWorker、Linux版本Windows版本,我的电脑是windows以下内容也是全部基于Windows进行开发,你也可以直接参考GatewayWorker手册进行获取和相关的开发。

二、运行GatewayWorker

1、安装PHPstudy(不做讲解请baidu)。

2、解压下载好的GatewayWorker,然后点击“start_for_win.bat”便可启动GatewayWorker项目。

 (建议将解压后的文件放到PHPstudy安装好的www目录下)

3、连接的端口为8282端口即(YourAppGateway对应的接口)。

三、客户端链接GatewayWorker

我的客户端基于uniapp进行开发,新建uniapp然后将index.vue内容替换为如下代码(你也可以使用其他进行开发)。

<template>
	<view class="content">
		<uni-forms :modelValue="formData">
			<uni-forms-item label="socket.io请求地址" name="name">
				<uni-easyinput type="text" v-model="formData.ip" placeholder="请输入" />
			</uni-forms-item>
			<uni-forms-item label="发送信息" name="name">
				<uni-easyinput type="text" v-model="formData.data" placeholder="请输入" />
			</uni-forms-item>
		</uni-forms>
		<button @click="submit()">连接socket</button>
		<button type="warn" @click="send_socket()">发送信息到socket</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				formData: {
					ip: "ws://localhost:8282",
					data: "测试"
				},
				ws:""
			}
		},
		methods: {
			submit() {
				uni.connectSocket({
					url: this.formData.ip,
					method:"GET",
					complete: function(res) {
						console.log(res)
					},
					success: function() {
						console.log("连接成功");
					},
					fail: function(res) {
						console.log(res);
					}
				});
				uni.onSocketOpen(function(res) {
					console.log('WebSocket连接已打开!');
				});
				uni.onSocketError(function(res) {
					console.log('WebSocket连接打开失败,请检查!');
				});
				uni.onSocketMessage(function (res) {
				  console.log(res);
				});
			},
			send_socket() {
				uni.sendSocketMessage({
					data:this.formData.data
					
				})
			},
		},
	}
</script>

<style>
	.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.logo {
		height: 200rpx;
		width: 200rpx;
		margin-top: 200rpx;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 50rpx;
	}

	.text-area {
		display: flex;
		justify-content: center;
	}

	.title {
		font-size: 36rpx;
		color: #8f8f94;
	}
</style>

点击“运行”然后得到的界面如下

点击“连接socket”,然后打开chrome的“检查”可以看到连接信息和返回信息。 

注意:

1、uniapp必须在Hbuildx里面运行。

2、GatewayWorker不需要依赖thinkphp或者另外下载workerman直接运行即可。

下一章《thinkphp6集成workerman中GatewayWorker实现长链接和消息推送(二)》着重讲述对GatewayWorker的一些改动让他更好地搭配thinkphp6进行消息推送。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在ThinkPHP6使用GatewayWorker进行消息推送,可以按照以下步骤进行操作: 1. 首先,在GatewayWorker创建一个新的php文件,并将其命名为SendMessage.php。在文件输入所需的代码,包括命名空间、引入Gateway.php文件、使用Gateway类等。这个文件将负责发送消息给客户端。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [thinkphp6集成workermanGatewayWorker实现链接消息推送(二)](https://blog.csdn.net/qq_45970399/article/details/126793381)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [thinkphp6集成workermanGatewayWorker实现链接消息推送(一)](https://blog.csdn.net/qq_45970399/article/details/126762138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Thinkphp6 redis队列 消息事件 gatewayworker聊天打通版](https://download.csdn.net/download/qq_32421489/16758494)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值