swoole实现微信小程序websocket

5 篇文章 0 订阅

准备

  1. wss的形式,微信小程序后台如果你配置的时候不加端口,默认是443端口,类似于我们的https,而ws就类似于http
  2. Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR 当你遇到这个错误就说明你的ssl配置有问题
  3. 微信小程序要求使用wss和https,所以你想正式环境可以使用,就必须使用这两种方式,很多网上资料我看都是ws的形式,那是因为微信那个开发工具可以设置成不进行证书的判断.
  4. 下面的swoole部分不会很详细你必须有一定websocket的基础

服务端

  1. 小程序后台进行websocket的配置
    我配置了两个地址是 easy.xxxx 和 easy.xxx:9503 ,其中9503是我之后要用的端口,easy.xxx是你的域名,不知道不加行不行,微信有修改次数限制我就不进行测试了
  2. swoole部分代码
//和普通的websocket不同的是加了SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL
$serv = new swoole_websocket_server(IP,端口,SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL) ) ;  
//存放你证书的地址
$setArray['ssl_cert_file'] = $this->ssl_cert_file;
$setArray['ssl_key_file'] = $this->ssl_key_file;
//设置配置参数
$serv ->set($setArray);

客户端

我不会小程序,所以给的是js的,是完整可以用的,只要你改下WebSocket地址就行,同时我服务端的方法小程序的同事测试过,是可以调通使用的

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
		<meta charset="utf-8">
		<title>socket</title>
		<script type="text/javascript">
			if("WebSocket" in window) {
				//修改你要发的地址
				var ws = new WebSocket("wss://easy.xxx:9503");
				//socket握手自动触发推送消息
				ws.onopen = function() {
					var data = {
							status:2,
							type: 4
					}
					data = JSON.stringify(data);
					console.log('连接服务端信息');
					console.log(data);
					ws.send(data);
				};

				//监听来自服务端的消息
				ws.onmessage = function(evt) {
					console.log('收到服务端信息');
					console.log(evt.data);
					//001.接收来自socket的信息
					/* var data=JSON.parse(evt.data); */
				/* 	console.log('收到服务端信息');
					console.log(data);
					//003.收到后先回复server已经收到.因为socket是挂起的
					var senddata={
							shoppingId:data.shoppingId,
							status:3
					}
					senddata = JSON.stringify(senddata); */
					//ws.send(senddata);
				};
				//客户端或服务端断开自动触发
				ws.onclose = function() {
					console.log('websocket已经断开!');
				};
			} else {
				console.log('您的浏览器不支持h5,无法启动websocket');
			}
		</script>
</head>
<body></body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值