引言

Hello,小伙伴们,今天我跟大家推送一篇文章:关于如何通过C++使用ocket实现与微信小程序通信,不过这只是限制于局域网下的通信。

众所周知,我们一般使用微信小程序进行与其他平台进行通信时,网上的历程或者方法大都数是使用到了服务器,或者有些小伙伴们已经在选择到底是租阿里的云服务好呢还是腾讯的云服务好。这倒也是个不错的选择,前提是你需要的是接入互联网的那种。
如果你只是想实现微信小程序与单片机通信、电脑用户端进行通信,那么我建议你学会我这一招方法,学会自己动手能力、掌握扎实的基础知识。如果不是,那么那可以离开该网页另寻方法。

成果表现之一

在这里我给大家演示一下,如何在windows下本地C++实现websocket服务器与微信小程序进行通信。

1、首先打开websocket服务器,点击运行。


2、接着打开自己制作的微信小程序

3、点击开启,进行与websocket服务器连接,其中这里的第二表示子线程1。


4、点击查询按钮,获取本文文件记录。


5、本地文件数据保存至txt文件内:


6、微信小程序效果显示

功能的实现形式

1、使用C++实现微信小程序的websocket服务器

这一步是最为底层的、也是最容易实现的,首先我们知道微信小程序里面并不能进行socket通信,因为微信小程序不支持socket建立连接的,你所网上看到的都是websocket协议的。这里给大家简单介绍一下它们的区别是什么:

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,连接建立与发送信息都是以TCP的

WebSocket是 HTML5 一种新的协议,是应用层的协议,一种双向通信协议 ,是建立在TCP之上的。

而websocket握手的过程如下:

(1)、建立TCP连接,三次握手。

 WSADATA wsaData;SOCKET sockServer;SOCKADDR_IN addrServer;SOCKET conn;SOCKADDR_IN addr;WSAStartup(MAKEWORD(2, 2), &wsaData);//创建Socket  sockServer = socket(AF_INET, SOCK_STREAM, 0);//准备通信地址  addrServer.sin_addr.S_un.S_addr = htonl(INADDR_ANY);addrServer.sin_family = AF_INET;addrServer.sin_port = htons(8090);//绑定  bind(sockServer, (SOCKADDR*)&addrServer, sizeof(SOCKADDR));//监听  listen(sockServer, 5);int len = sizeof(SOCKADDR);//监听连接  conn = accept(sockServer, (SOCKADDR*)&addr, &len);

(2)、TCP连接成功后,客户端向服务端发送HTTP握手请求。

GET / HTTP/1.1
Host: localhost:8080
Origin: http://127.0.0.1:3000
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: w4v7O6xFTi36lq3RNcgctw==

(3)、服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据。

HTTP/1.1 101 Switching Protocols
Connection:Upgrade
Sec-WebSocket-Accept: w4v7O6xFTi36lq3RNcgctw= 258EAFA5-E914-47DA-95CA-C5AB0DC85B11
Upgrade: websocket

(4)、当收到了连接成功的消息后,通过TCP通道进行传输通信。

据此,就完成了websocket的连接了。然后接下来就是怎么样处理接收和发送信息了。

2、C++使用线程池实现微信小程序多客户端接如服务器

这样部分呢,可以说是升级版的功能,毕竟只是单一的客户端实现与微信小程序太不方便了。

3、C++调用MySQL实现websocket后端数据保存

这个呢,可以说是最终版本,相信大家都知道微信小程序开发者工具里面也提供了后台数据的支撑,但是呢,由于我们采用的是在自己的电脑上进行搭建微信小程序的服务器,所以使用MySQL来实现后端数据了,这样既锻炼你的能力,又能学到很多,不去尝试一下吗。

2、微信小程序前端设计部分

首先,我们打开微信开发者工具,建立新工程文件。并在pages文件夹下来新增welcome文件夹。

接着,我们右键点击welcome文件,选择新建Page。输入welcome名称,就可以直接得到四个文件。


打开welcome.js页面,调用wx.connectSocket函数,注意IP地址和端口号的写入格式:url:'ws://(你的IP地址):(端口号),就可实现了。


login:function(){wx.connectSocket({url: 'ws://190.167.1.145:8090' ,  //此处开发者服务器接口地址})wx.onSocketOpen(function() {console.log("服务端连接成功")})}

详细解说

那个,这次的话我就不将再这里细说了,最近弄了个公众号,前期缺乏了粉丝关注,所以的希望拜托各位帮忙了,代码讲述我将会在公众号里面给出。如果想实现以上2、3功能的可以在微信公众后台回复我,我到时候再看需求量写出如何实现。

C++使用socket实现与微信小程序通信相关推荐

  1. android小程序 socket,能在微信小程序中使用的socket.io客户端

    微信小程序版 socket.io和engine.io 可以使用在微信小程序中的socket.io和engine.io 微信小程序的websocket做了一次封装,导致socket.io或者engine ...

  2. 3、微信小程序-通信

    文章目录 前言 一.组件通信 1.微信小程序组件内部(页面与逻辑层之间)通信 2.微信小程序组件之间(父子组件)通信 (1)父组件是如何向子组件传递数据的 (2)子组件是如何向父组件传递数据的 二.p ...

  3. Django搭建服务器,和微信小程序通信,验证码存入redis,用户信息存入mysql以及图片上传

    写在前面:整体是实现小程序的登录和注册,并接收验证码进行校验. 一.创建项目 django-admin startproject wxTest 二.注册app,进入到wxTest目录中 python ...

  4. 微信小程序 腾讯云 mysql 初始_微信小程序初始化怎么处理?小程序服务器域名配置...

    小程序初始化配置指引 假如您已成功创建了小程序资源,需要对现有的资源进行一些简单配置后,才能让小程序跑起来 未创建过资源的用户可以先在小程序控制台进行创建 1.配置微信小程序通信域名 首先我们在小程序 ...

  5. 微信小程序开发的那些坑,你踩过吗?

    微信小程序开发的那些坑,你踩过吗? textarea组件value不显示 textarea组件默认值绑定data数据真机不显示问题 |?链接 使用.switchTab跳转到tabbar页传递参数问题 ...

  6. 微信小程序学习实录6(百度经纬度采集、手动调整精度、H5嵌入小程序、百度地图jsAPI、实时定位、H5更新自动刷新)

    百度经纬度采集 一.H5页面开发 1.手机端外部JS库 2.地图容器 3.数据表单 4.地图加载 5.回调封装函数+自动定位 二.微信小程序核心代码 1.lnglat.wxml 2.lnglat.js ...

  7. thinkphp5+workerman搭建微信小程序socket后台,建立自己的聊天室

    为什么80%的码农都做不了架构师?>>>    1.下载安装tp5 这一步就不详细说了,比较简单,直接看TP文档吧 2.通过composer,为tp5集成workermantp 官方 ...

  8. php socket 小程序,实例详解微信小程序如何使用Socket

    本文主要和大家介绍微信小程序使用Socket的实例的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下,希望能帮助到大家. 微信小程序使用Socket的实例 首先,一个小程序同时只能有一个Web ...

  9. 微信小程序的socket.io即时通讯开发(基于E聊SDK)

    1.背景: 由于微信小程序需要开发轻量,跨平台,开发时间短等特点,许多公司将小程序作为了业务展示的第一个APP.E聊客户端核心SDK 通讯部分已适配了微信小程序平台,下面分享一下适配过程中的思路与方法 ...

最新文章

  1. 人工智能技术在内容行业的应用:AI对中长尾内容平台还是奢侈品
  2. 四川大学计算机学院男女生比例,川大、电子科大新生男女比例大PK 比例更佳的是……...
  3. 报告显示Q2 Android平板电脑全球市场份额达67%
  4. uniapp 统计_“uni统计”震撼来袭 - 1份报表,掌握全景数据(App及各种小程序)
  5. 对话张潼 | 腾讯AI Lab周岁:规模飙至370人,要做后来居上的终结者
  6. VRRP实现AC双机备份原理详解与配置实例
  7. OA系统身份认证的设计
  8. csv文件的使用,csv空白行问题
  9. 玩转二叉链表 (20 分)
  10. Chapter 4 夫琅禾费衍射-Matlab仿真
  11. Hibernate(6)——映射类型
  12. Windows10系统 无法更换锁屏图片一直转圈圈(含替换系统默认锁屏壁纸教程)异常处理
  13. 戴尔电脑开机卡logo无法开机问题及解决办法
  14. 物联网开发 8 MQTT 协议开发入门
  15. Vmware Vsphere HA创建集群步骤
  16. springboot 项目启动报Has been loaded by XML or SqlProvider, ignoring the injection of the SQL的错误的解决方案
  17. 一线城市nbsp;ornbsp;二线城市?(目前为止…
  18. JDO和JPA的区别是什么
  19. 摄影的艺术:一个狂热爱好者的摄影之路 | 读书
  20. win10桌面图标和任务栏图标一直闪烁,就和刷新一样,怎么解决?

热门文章

  1. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day14-面向对象进阶02
  2. 通信原理笔记—二进制移相键控(2PSK或BPSK)
  3. UE4纯蓝图-生存开发游戏
  4. npm install下载依赖项时报错 fatal: unable to access ‘https://github.com/nhn/raphael.git/‘: Failed to connect
  5. 【visual studio】符号 SymbolCache
  6. Hadoop大象之旅009-通过Shell操作hdfs
  7. mac怎么设置桌面提醒|mac系统提醒事项设置闹钟方法
  8. JavaScript旋转数组
  9. 爆破专栏丨Spring系列教程解决Spring Security环境中的跨域问题
  10. 浅聊DAO图景和未来