android點對點視頻
㈠ 如何使用ActiveMQ+MQTT實現Android點對點消息通知
2013-12-20
實現點對點消息通知的關鍵問題
ActiveMQ使用MQTT協議,加上android上的paho包,即可簡單實現消息通知功能,但是mqtt協議只支持topic,而且不能用selector,使得點對點的消息投遞變成問題。
有兩個解決思路:
1、每個clientId,建一個topic...這個辦法對解決消息點對點投遞非常有效,但是有兩個大問題:
隨著用戶數增多,topic數量增多,對管理性要求增大,對內存的管理也有問題。
消息廣播操作也變得非常麻煩,只能一個個的發送了。
2、另一個思路,就是在消息廣播的基礎上,進行點對點控制,實現某些特徵的消息投遞到指定的訂閱者。
這個的實現比較簡單,而且沒有上面方案的大問題。代碼稍微改下即可:
其實就只添加了一個新的類: ClientIdFilterDispatchPolicy
可以git clone所在版本源碼,然後加上這個類,mvn package以後使用。
使用說明
本修改實現mqtt協議使用單個topic,來做消息廣播和點對點的投遞。
1、將本文件夾下的activemq-broker-5.9.0.jar、activemq-spring-5.9.0.jar換掉apache-activemq-5.9.0\lib下的jar。
2、參考本文件夾下activemq.xml,在topic上配置
<dispatchPolicy>
<clientIdFilterDispatchPolicy />
</dispatchPolicy>
3、對於此配置下的所有名稱以.PTP結尾的隊列,
如果要投遞消息的properties里包含PTP_CLIENTID,則系統只會將此消息發給clientId為此值的訂閱者;如果當前沒有此clientId的訂閱者,消息不會被任何人接收到。
如果投遞消息的properties里不包含PTP_CLIENTID,則消息廣播給所有的訂閱者。 跟正常消息投遞一致。
其中後綴.PTP和鍵值PTP_CLIENTID,是可以配置的:
<dispatchPolicy>
<clientIdFilterDispatchPolicy ptpSuffix="" ptpClientId="clientId"/>
</dispatchPolicy>
如上配置,使得此policy下的所有topic都起作用,且消息的properties里獲取clientId的key變成clientId。
消息發布者,如果要對所有人廣播消息,直接發送消息即可。
如果要對指定的消息訂閱者發消息,請在消息里設置接收者的clientId:
message.setStringProperty(PTP_CLIENTID, clientId);則此消息只有指定的訂閱者可以拿到。
簡單測試
兩台android設備使用MQTT協議訂閱到ActiveMQ的同一個topic,clientId分別為mqtt-1001和mqtt1002;
寫代碼發兩條消息,設置消息屬性中PTP_CLIENTID分別為mqtt-1001和mqtt1002;
兩個設備分別接收到自己的消息通知,相互之間沒有影響。還可以測試下如果消息沒有PTP_CLIENTID,兩個都能收到。
㈡ 在android 上實現點對點視頻通話難不難
不難,可用找第三方提供對應的音視頻SDK,ZEGO即構科技就不錯,最近還獲得了融資。總之他們的音視頻SDK支持在android 上實現點對點視頻通話,並且接入簡單,API可用靈活調用。
㈢ 安卓手機如何連bssid(點對點)
不知道你的具體要求,我只知道快牙可以點對點甚至點對多點快速傳輸,不費流量
㈣ Android與windows如何通過互聯網點對點傳文件
搭建FTP,你的電腦上搭一個FTP,然後你找一個服務商把你的寬頻變成靜態的(比如花生殼),然後手機上裝ES瀏覽器這種能訪問FTP的程序,訪問地址就可以了。如果你的寬頻是小區寬頻,免費的靜態地址解析還用不了,必須買收費的。這個就是純點對點的。如果做不到,可以藉助三方,skydrive就是微軟的免費網盤,你在電腦上裝客戶端,就可以在skydrive里訪問電腦里的內容,然後直接在android上下載。這個文件內容經三方傳輸,但不存儲。
㈤ 多台安卓設備如何通過軟體實現同步播放控制
下載一個同步軟體就可以了