Winform下如何接受微信扫码发出的请求?

智能视界 2020-10-11 09:51:22
配置有,本地C/S 客户端一个(winform), web iis 服务器(asp.net b/s)
问题就是当手机微信扫码,请求查询价格的时候,winform客户端怎么获得这一通知?
本地客户端能上网,但不接受外网访问。除了轮询以外有更好办法。
...全文
9640 11 点赞 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
智能视界 2020-10-15
[quote=引用 10 楼 惊喜不断 的回复:]不用轮询,TCP socket 肯定要驻守,给你写了一个例子:如下图: 原理是这样 单独写一个C端:功能作为socket服务, web api 接收微信回调后,连接 c端,通知 客户端winform 程序, 这样就可以了,我做了一个例子,速度挺快的,比轮询强点。 你这个驻守socket 不应该是TCP的吧。
  • 打赏
  • 举报
回复
智能视界 2020-10-12
引用 8 楼 惊喜不断 的回复:
补充二:因为websocket 不稳定,诸多不支持,这里你的客户端又不能被外网访问,这时候你就需要在服务端写一个 c端服务,web接口接收到微信消息,之后通知新开发的C端,通知客户端winform 程序,,, 就这样。
"web接口接收到微信消息,之后通知新开发的C端"----这个C端如何做?web实际上是一个webmvc或webapi,因此要把C端作为websocket服务器应该程序,然后web接口请求C端,C端再广播出去给各个winform客户端?这个C端要长期驻守
  • 打赏
  • 举报
回复
惊喜不断 2020-10-12
补充二:因为websocket 不稳定,诸多不支持,这里你的客户端又不能被外网访问,这时候你就需要在服务端写一个 c端服务,web接口接收到微信消息,之后通知新开发的C端,通知客户端winform 程序,,, 就这样。
  • 打赏
  • 举报
回复
惊喜不断 2020-10-12
web 需要提供给微信一个回调接口,用于微信通知你,接口接收到微信消息后,不用轮询,需要通过websocket 通知 winform 程序,(web)是服务端。
  • 打赏
  • 举报
回复
惊喜不断 2020-10-12
不用轮询,TCP socket 肯定要驻守,给你写了一个例子:如下图:
原理是这样 单独写一个C端:功能作为socket服务, web api 接收微信回调后,连接 c端,通知 客户端winform 程序, 这样就可以了,我做了一个例子,速度挺快的,比轮询强点。

  • 打赏
  • 举报
回复
引用 楼主 智能视界 的回复:
本地客户端能上网,但不接受外网访问


这个说法不是什么“轮询的借口”,这说明你并没有搞过TCP之类的通讯程序编程。双向通讯是随时可以随送消息的。例如腾讯假设有20万台服务器,有20亿人使用,那么并不是说每台服务器上每隔几十毫秒就有几千万的客户端来轮询。每当有消息,消息同一个源服务器到达目标服务器,然后直接推送给手机,就是正常的“长连接双向”通讯,根本没有什么轮询。

很多编程培训为了赚钱,收着研究生的学费,教初中生的入门课程,所以不讲长连接双向通讯知识,只教点 http 单向通讯的最基本内容。
  • 打赏
  • 举报
回复
微信扫码,腾信公司会将消息发送给你的“公众号网站”。至于说你的 winform 应用与你的公众号网站之间的通讯,人家是不管的。你用“轮询”只是会让你的网站适合小应用,低速应用,并非不可以,比如说学生实习时就可以用轮询的方式,而比较的专业程序设计师设计一个大一点的项目时就可以使用 websocket 双向通讯方式。
  • 打赏
  • 举报
回复
智能视界 2020-10-11
引用 5 楼 icoolno1 的回复:
看你码是什么啊,有时候扫出来就是一个链接,比如这个链接是你们网站上用于手机验证的接口,里边带上了当前登录的页面的id,和手机客户端token什么的。既然有了对应关系,其它你自己看着办啊。
这个码就是一个链接,显示一个页面,输入id,提交。请求会访问web网站,web网站再转发给本地,业务逻辑都在本地,所以本地得到消息后得到结果,再把结果推给web网站,web再返回给手机
  • 打赏
  • 举报
回复
韩老骥 2020-10-11
看你码是什么啊,有时候扫出来就是一个链接,比如这个链接是你们网站上用于手机验证的接口,里边带上了当前登录的页面的id,和手机客户端token什么的。既然有了对应关系,其它你自己看着办啊。
  • 打赏
  • 举报
回复
智能视界 2020-10-11
引用 1 楼 以专业开发人员为伍 的回复:
微信扫码,腾信公司会将消息发送给你的“公众号网站”。至于说你的 winform 应用与你的公众号网站之间的通讯,人家是不管的。你用“轮询”只是会让你的网站适合小应用,低速应用,并非不可以,比如说学生实习时就可以用轮询的方式,而比较的专业程序设计师设计一个大一点的项目时就可以使用 websocket 双向通讯方式。
每当微信扫码,就请求网站把通知广播出去吗,客户端通过连接websocket,就得到微信通知是这样吗?那这个“个人公众号”网站上要实现websocket要怎么做
  • 打赏
  • 举报
回复
智能视界 2020-10-11
在websocket通讯中,winform和个人web网站之间谁是客户端,谁是服务器?
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2020-10-11 09:51
社区公告

让您成为最强悍的C#开发者