目录
回复内容:
首页 后端开发 php教程 关于微信公众号接收数据并传送给局域网网站的一些问题

关于微信公众号接收数据并传送给局域网网站的一些问题

Aug 18, 2016 am 09:16 AM
mysql php python 微信公众号

只是想找一下思路,听听大神的意见,不求他人帮忙做出详细方案,只求指出攻关方向。本人会PHP/Java,能对照百度写一点Python。
在本地局域网中,有台服务器跑php网站,这台服务器处于深深的内网中(动态公网IP+网管不给做端口转发);另有一台服务器,处于xx云的机房中,有独立公网IP,跑php用于与微信对接。现在想做一个功能,能让微信发送的信息途径xx云主机转发至局域网中服务器上。xx云主机是Linux系操作系统,可考虑PHP/Python/Java的运行;局域网主机是台普通PC,windows操作系统,可运行PHP/Python/Java,两台主机均配备了MySQL数据库(也是本问题选用的数据库).不知诸君有没有什么比较精妙的思路。。
现在我初步有几种思路,还求各位评点,谢谢!
1.微信->云主机(PHP)->数据库
   局域网使用Python或者Java轮询获取新增数据到本地数据库。
2.微信->云主机(PHP)->跨进程传送至Python写的Socket服务器
   局域网使用Python或者Java与云主机建立Socket链接,实时通信存入数据库。
3.微信->云主机(PHP)->数据库.
    本地数据库与远程数据库创建主从数据库同步(关键是远程可以只写不查)
4.微信->云主机(PHP)->数据库
    本地编写程序直接连接两个数据库做一些操作。。
以上便是我针对这个问题思考的一些结果,感觉每个方法都会影响整体系统的速度与效率。

回复内容:

只是想找一下思路,听听大神的意见,不求他人帮忙做出详细方案,只求指出攻关方向。本人会PHP/Java,能对照百度写一点Python。
在本地局域网中,有台服务器跑php网站,这台服务器处于深深的内网中(动态公网IP+网管不给做端口转发);另有一台服务器,处于xx云的机房中,有独立公网IP,跑php用于与微信对接。现在想做一个功能,能让微信发送的信息途径xx云主机转发至局域网中服务器上。xx云主机是Linux系操作系统,可考虑PHP/Python/Java的运行;局域网主机是台普通PC,windows操作系统,可运行PHP/Python/Java,两台主机均配备了MySQL数据库(也是本问题选用的数据库).不知诸君有没有什么比较精妙的思路。。
现在我初步有几种思路,还求各位评点,谢谢!
1.微信->云主机(PHP)->数据库
   局域网使用Python或者Java轮询获取新增数据到本地数据库。
2.微信->云主机(PHP)->跨进程传送至Python写的Socket服务器
   局域网使用Python或者Java与云主机建立Socket链接,实时通信存入数据库。
3.微信->云主机(PHP)->数据库.
    本地数据库与远程数据库创建主从数据库同步(关键是远程可以只写不查)
4.微信->云主机(PHP)->数据库
    本地编写程序直接连接两个数据库做一些操作。。
以上便是我针对这个问题思考的一些结果,感觉每个方法都会影响整体系统的速度与效率。

可以使用redis的订阅/发布功能,消息能够即时传递

我来给你第二种思路增增粗

微信->云主机(PHP)->起一个rabbitMQ的消息队列server, 把微信消息扔进队列->局域网主机起一个rabbitMQ的client, 从server端取出消息->扔进数据库

整个消息传输过程异步进行, 哪一个环节都不会有阻塞, 妥妥的, 不用再造轮子了

方案很多,就像你自己给出的1、2、3、4一样,这个时候就要看业务场景:

  1. 时间紧吗?

  2. 数据量大吗?

  3. 时延要求高吗?

  4. 并发量如何?

  5. 软硬件投入有限制吗?

不能用花生壳吗

这4个方案在理论上都是可行的。但实际场景中记得要注意这几点:
1、你的所有方案都是写操作,如果有读操作的话,部分方案就很难办了,靠异步轮询的话肯定会有数据不一致
2、保持长连接进行通信的话,如果短时间内没有数据,防火墙会不会把你的链接咔嚓掉。这是一个非常棘手且非常常见的大问题,尤其是网管不给做端口转发这种糟糕的前提下。
3、对于方案4,你的网络延迟会不会对用户操作造成僵死或者脏数据。

天朝网络质量很差的,尽量避免多个远程服务器处理一个线性操作,也尽量避免远程长连接。

一般局域网内做微信服务器,都是通过端口转发(如果是动态ip的话还要配动态域名)。现在你的php服务器本质上不处理业务,只做代理,那我有两个方案,1是在公网服务器上搭建nginx,通过动态域名技术反向代理到你的局域网服务器上 2,使用服务中间价,比如java的dubbo,在外网服务器远程调用局域网内的服务

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1253
29
C# 教程
1228
24
MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是强大的数据库管理工具。1)MySQL用于创建数据库和表、执行DML和SQL查询。2)phpMyAdmin提供直观界面进行数据库管理、表结构管理、数据操作和用户权限管理。

IIS和PHP的兼容性:深度潜水 IIS和PHP的兼容性:深度潜水 Apr 22, 2025 am 12:01 AM

IIS和PHP可以兼容,通过FastCGI实现。1.IIS通过配置文件将.php文件请求转发给FastCGI模块。2.FastCGI模块启动PHP进程处理请求,提高性能和稳定性。3.实际应用中需注意配置细节、错误调试和性能优化。

如何安全地将包含函数和正则表达式的JavaScript对象存储到数据库并恢复? 如何安全地将包含函数和正则表达式的JavaScript对象存储到数据库并恢复? Apr 19, 2025 pm 11:09 PM

安全地处理JSON中的函数和正则表达式在前端开发中,经常需要将JavaScript...

Python vs.C:您的项目选择哪种语言? Python vs.C:您的项目选择哪种语言? Apr 21, 2025 am 12:17 AM

选择Python还是C 取决于项目需求:1)如果需要快速开发、数据处理和原型设计,选择Python;2)如果需要高性能、低延迟和接近硬件的控制,选择C 。

在MySQL中解释外键的目的。 在MySQL中解释外键的目的。 Apr 25, 2025 am 12:17 AM

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

Python vs. C:了解关键差异 Python vs. C:了解关键差异 Apr 21, 2025 am 12:18 AM

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

SQL与MySQL:澄清两者之间的关系 SQL与MySQL:澄清两者之间的关系 Apr 24, 2025 am 12:02 AM

SQL是一种用于管理关系数据库的标准语言,而MySQL是一个使用SQL的数据库管理系统。SQL定义了与数据库交互的方式,包括CRUD操作,而MySQL实现了SQL标准并提供了额外的功能,如存储过程和触发器。

在Python和C之间进行选择:适合您的语言 在Python和C之间进行选择:适合您的语言 Apr 20, 2025 am 12:20 AM

Python适合初学者和数据科学,C 适用于系统编程和游戏开发。1.Python简洁易用,适用于数据科学和Web开发。2.C 提供高性能和控制力,适用于游戏开发和系统编程。选择应基于项目需求和个人兴趣。

See all articles