大佬们,我们公司要自己开发一个即时通讯类型的 app, 请问需要储备那些技术知识。协议现在用的 xmpp,听说要改到 websocket 。我是移动端的开发 ~ 歇歇
1 xylophone21 2020-04-05 10:16:29 +08:00 ![]() “听说”一词,说明在技术选择和方案设计上,你是被动的。为什么不是我们做了 xxx 分析以后认为应该改到 websocket ? |
2 lneoi 2020-04-05 10:17:50 +08:00 xmpp 好像 app 端用的比较多,对前端十分不友好 |
![]() | 3 DonaidTrump 2020-04-05 10:30:47 +08:00 grpc,protobuf |
4 djoiwhud 2020-04-05 10:38:07 +08:00 ![]() 私有 tcp 或者 websock,redis,高可用项目的项目经验。听起来都很容易,不过,没有真实的项目经验,你很难理解 99.999%的送达率需要怎么设计和实现。 |
![]() | 6 reus 2020-04-05 10:58:26 +08:00 xmpp 和 websocket 不能共用? https://tools.ietf.org/html/rfc7395 |
![]() | 7 hst001 2020-04-05 11:15:19 +08:00 没什么特殊需求建议你们还是用三方服务,自己对接接口就好了,没有经验的话,自己实现有很多技术细节不是被你们忽略就会被耗掉大把大把的时间 |
8 tairan2006 2020-04-05 11:24:46 +08:00 via Android websocket 是个裸协议啊,应用协议你还是要选一个…当然你可以用 json |
9 jakezh 2020-04-05 12:49:23 +08:00 via iPhone @jackrelative 求讲一下高送达率怎么保证。 最近在搞一个人命关天的项目,不敢大意 |
10 guoziyan 2020-04-05 13:04:23 +08:00 @tairan2006 可以参考 MQTT 的 QOS 1 的实现,然后做好客户端消重。 |
11 hantsy 2020-04-05 13:05:45 +08:00 可以使用 STOMP ( WebSocket+RabbitMQ ),用 Rabbit 来缓解消息的压力,这个 Spring 内置支持。 |
![]() | 12 CoderGeek 2020-04-05 13:36:36 +08:00 自验 搭起来成本不大 问题是送达率 一般小厂都会选择三方封装 自己搞得话 从技术方案到成本都要仔细梳理 |
![]() | 13 heiheidewo 2020-04-05 13:58:51 +08:00 ![]() 推荐腾讯的 IMSDK, 这东西看上去简单( tcp + 私有协议 + protobuf 序列化),实际上有大量的细节需要注意的, 比如可靠性,尤其是各种群消息。 |
14 ilylx2008 2020-04-05 15:27:27 +08:00 websocket 挺简单的 |
![]() | 15 tanranran 2020-04-05 15:45:41 +08:00 坑在于后台,前端还好。推荐使用三方 SDK,自己研发,耗时耗力最后还是残缺品 |
16 laminux29 2020-04-05 16:15:14 +08:00 IM 的本质就是 rpc,没啥难度。只是业务上,第一次玩的话,最好用 Visio 把流程梳理一下。 |
![]() | 17 murmur 2020-04-05 16:16:43 +08:00 技术栈啊,别搭了,直接用网易的 sdk 吧,原子弹短信就是网易技术 |
![]() | 18 iFlicker 2020-04-05 16:23:46 +08:00 了解一下微信开源的 Mars |
19 djoiwhud 2020-04-05 19:40:18 +08:00 @jakezh 上行和下行消息都加确认机制,不行就重发。仔细考虑重发机制的去重问题。一般公司的量不会涉及扩容问题,也就不涉及消息转发的问题。总的来说,一个小的稳定的系统还是不怎么难做的。 |
20 yeqizhang 2020-04-05 19:44:20 +08:00 via Android @jackrelative 感觉 9 少了点,不知道企鹅做到了多少个 9 。而且应该有 ack 保证 100%? |
21 jakezh 2020-04-05 21:03:44 +08:00 @jackrelative #19 多谢 |
22 fan123199 2020-04-05 23:16:10 +08:00 websocket 用在 H5 上比较方便吧。 |
23 Meltdown 2020-04-06 01:37:19 +08:00 via Android 我记得国内有个专门的搞即时通讯的技术网站 |
24 Sunxb OP 大佬们, 关键是公司要求的必须是自己搞,后台都是用的自己买的服务器,为了数据安全问题。从来没告诉哦即时通讯类型的东西,一时确实没处下手。 |
![]() | 25 liyaojian 2020-04-06 12:19:05 +08:00 @Meltdown #23 你说的是这个吧 http://www.52im.net/ |
26 jin7 2020-04-06 13:31:40 +08:00 之前有人发过 好像叫野火 |
![]() | 27 version 2020-04-06 15:43:40 +08:00 websocket 走 http 那套 延迟也大呢.做得好 30ms 以内. 推荐还是 tcp 私有协议.protobuf 拆封包吧..这样稳妥些.延迟也没那么低.麻烦就是分布式和重连要自己爬坑了 一般都是 c++ 写通信层底层..业务就各自语言包起来.移动或者桌面一般都这样干多 |
28 laozhang 2020-04-07 06:03:10 +08:00 via iPhone 我自己最近搞了一个。吞吐量不是很高。用的 websocket 。 |
![]() | 29 EulerChen 2020-04-07 09:49:43 +08:00 MQTT |
30 FateBlood 2020-07-14 23:34:04 +08:00 出一套数字货币交易所,支持币币和合约交易所需要联系 +V itshenmalong |