微信像这种发消息的,是用的C/S结构还是B/S结构?

KPRF2009 2012-10-19 10:50:33
微信像这种发消息的,是用的C/S结构还是B/S结构?
...全文
1655 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
KPRF2009 2012-10-20
  • 打赏
  • 举报
回复
我就是想知道消息传输的构架是什么。。。。

不是几个人的,是多人/就是很多人的那种,,,的消息发送或者共享的构架。。。

[Quote=引用 7 楼 的回复:]

微信的构架在于提供消息传输和共享的服务,所有C/S还是B/S都不重要,那只是客户端的访问方式而已
[/Quote]
huangxiaofei 2012-10-20
  • 打赏
  • 举报
回复
微信的构架在于提供消息传输和共享的服务,所有C/S还是B/S都不重要,那只是客户端的访问方式而已
KPRF2009 2012-10-20
  • 打赏
  • 举报
回复
请问微信这种是属于那种?能简单说下微信的通信的原理和步骤吗?

[Quote=引用 4 楼 的回复:]

B/S 和 C/S 在 S 端并没有区别,就是Server。

你喜欢用HTTP、WebService、EJB,啥都行,没有特定限制。

有限制的是B或C这一段,比如浏览器,想用EJB方式跟Server端通讯就很难。
[/Quote]
KPRF2009 2012-10-19
  • 打赏
  • 举报
回复
就是用Servlet那种。。。。

[Quote=引用 2 楼 的回复:]

B/S 的B是浏览器的意思,所以楼主自己感觉它有没有浏览器呢?
[/Quote]
MiceRice 2012-10-19
  • 打赏
  • 举报
回复
B/S 的B是浏览器的意思,所以楼主自己感觉它有没有浏览器呢?
雍寇德 2012-10-19
  • 打赏
  • 举报
回复
这是cs 是客户端 然后服务器的
AlexMoonshadow 2012-10-19
  • 打赏
  • 举报
回复
楼上正解。
MiceRice 2012-10-19
  • 打赏
  • 举报
回复
B/S 和 C/S 在 S 端并没有区别,就是Server。

你喜欢用HTTP、WebService、EJB,啥都行,没有特定限制。

有限制的是B或C这一段,比如浏览器,想用EJB方式跟Server端通讯就很难。
最近感觉微信小程序比较火,周围很多人在玩“跳一跳”和“头脑王者”之类的小游戏。 对于小程序我也产生了浓厚的兴趣。 一开始看到官方的小程序的介绍,也看了小程序的部分开文档,本能以为微信小程序不过是一个浏览器框架,小程序也只是网页而已。首先认为小程序通过了HTTP协yi传输了相应的JS、HTML文件。开始抓HTTP协yi,现进入小程序内部之后的数据包可以找到,但是小程序的结构包死活找不到。因此猜想可能通过其他协yi进行了传输。 使用中惊奇的现将小程序添加至桌面,断网后现有些小程序依旧可以使用,这个时候猜想小程序在本地有缓存。 因此,比较手笨的先删除了微信目录下的数据文件,记录此时的文件信息,接着登录自己的账号,进入小程序,添加至桌面后退出微信。对比文件信息,现多了的几个wxapkg数据包比较可疑。 文件具体目录为./data/data/com.tencent.mm/MicroMsg/[自己的微信目录,为一串字符]/appbrand/pkg/ 首先先直接将可疑数据包pull到本地电脑,方便进一步分析。这儿的小程序的文件名也是一串字符。 通过HEX分析软件分析其中一个apkg包,浏览中现很多地方直接明文,因此猜想可能整个apkg包都没有加密。 比如开头的很多文件路径,但是中间部分有较多的乱码,在后半部分又出现了明文。在这些明文中,我现了关键字question.hortor.net。这个是我在抓包的时候的一个host。因此,90%的可能性现的apkg包就是关键性的数据包。 通过对多个小程序的数据包进行分析。得出如下结论: 文件开头是一段结构,标识了数据包的一些信息,文件的后面是具体的文件的主体。 文件开头都是0xBE,0x00000000,接下来是一个四字节的索引长度、四字节的文件长度。然后就是0xED的尾部。接下来是一个四字节的文件数量,我这边的数据为0x00000045,用计算器计算是十进制的69,先按下不表。接下来数据就比较清楚了,四字节的文件名长度N,N字节的文件名,四字节的文件开始位置,四字节的文件大小。整个索引长度过后,就是正常的文件主体了。 写个代码帮我们自动进行数据包的解析 代码可以在底部下载。 通过代码,成功的还原了“头脑王者”这个小程序的代码。 我们可以清楚的看到文件结构,image为游戏图片资源,template与page为游戏部分页面。 app-config.json为小程序的配置文件,定义了页面地址之类的信息 [img]file:///C:\Users\Xiaodui\AppData\Roaming\Tencent\Users\244036962\QQ\WinTemp\RichOle\{1))PS(8%(I[DZBK2R9~~CH.png[/img] 此处为经过格式化的,建议大家阅读js,json等代码,最好先格式化一下。 page-frame.html从字面直接可以理解到是页面框架。 软件的主体逻辑就在app-service.js里面了。同样格式化之后看看 通过define定义了多个js文件。这儿我想知道数据包中sign的来历。 数据包: https://question.hortor.net/question/message/recordForm formId=1515596516126uid=62552339t=1515596526234sign=c2942c7420a22b224f514db81db5f058 直接搜索sign一般是不现实的,毕竟sign肯定很多处出现,我们搜一搜url中的关键字:message/recordForm 我们定位到了RecordForm: "/question/message/recordForm" 接着搜索RecordForm 定位到了: var s = require("./../net/network.js"), t = require("./../const/consts.js"), e = module.exports; e.recordForm = function (e, r) { s.post(t.MessageHead.RecordForm, { params: { formId: e }, success: function (s) { r(null, s) }, fail: function (s) { console.warn("recordForm失败。-" + s.errMsg), r(s) } }) } 我们跟进s这个network这个js,找到了sign的地方 var n = this,

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧