当前位置: 代码迷 >> 多媒体/流媒体开发 >> 语音聊天 方案设计解决方案
  详细解决方案

语音聊天 方案设计解决方案

热度:7932   发布时间:2013-02-26 00:00:00.0
语音聊天 方案设计
本帖最后由 titer1 于 2012-07-18 14:50:14 编辑
最近在做语音聊天

目标分层次有:

1对1的聊天

1对n的组播聊天

n对n的群聊。

---------------
我们采用的技术有:sip udp 等等。

1对1的聊天实现方法: 协议层:osip..传输用udp.语音用729.. 。。进度是已经完成。
1对n的语音: 进度正在做。

         方法一:使用udp 组播。 具体原型已经摸索出。借鉴了 陆老师的multicast.
                 不分服务器,客服端。一个主线程负责分发,一个主线程负责接受。

             后期准备裁剪陆老师的avchat实现语音。
         方法二:(待补充)

n对n的语音:
        感觉很难。有同学建议p2p..求证中



最后小结:想模仿个YY语音,真的不容易。

------解决方案--------------------------------------------------------
据我了解国内某大公司的语聊平台中:
协议不了解,但是设计思想如下:
1、1对1中,和楼主使用的方式相同,是点到点直连
2、1对n中,使用的是类似方法一服务端中转这个1,然后做组播
3、n对n貌似他们也不支持类似功能,我得感觉是用p2p,有了1对n的基础要解决的实际上就是一套p2p网络体系,其他诸如婚姻、UDP通讯问题(比如丢包)都已经解决完毕。
------解决方案--------------------------------------------------------
各开一个线程做发送,和接收,把收到的报文放到缓存区里,开另外的线程处理缓存区(做混音什么的的)。
------解决方案--------------------------------------------------------
不是服务器吗,还考虑什么嵌入环境
------解决方案--------------------------------------------------------
按照你的这个思路开发出来的只能内网使用,如果想公网使用转发服务器少不了的。
SIP不太适合做多对多,没有现成的协议支持,需要诸如sip conference之类的扩展协议,而这类扩展协议osip是不支持的,如果你要自己扩展也是相当麻烦的。
组播不能公网传输,绝大部分的路由器屏蔽了组播。
踏踏实实从头到尾自己设计一套比较靠谱。
------解决方案--------------------------------------------------------
这个协议时关键,要么自定义协议要么使用H323
  相关解决方案