FlashCom的連線是經過Port 1935,在很多大公司,通常都會用防火牆擋了所有不用的Port,因此FlashCom應用程序是無法連線的,視頻會議應用程序往往針對這些客戶,因此FlashCom 1.5支持HTTP Tunneling,讓連線可以經過其他Port,最重要當然是Port 80,因為這個Port不會擋,否則公司就根本不打算讓人可以上網看網頁。Flash Player當通過Port 1935無法連線FlashCom時,它自動跟著會試Port 443,最後是Port 80。
最近我親身體驗過,在一家非常封閉的公司嘗試,發覺根本連不到,正懷疑是否Macromedia言過其實。翻查文檔,發現FlashCom默認設置了只監聽著1935,需要在Adaptor.xml的:
<HostPortList>
<HostPort>:1935</HostPort>
</HostPortList>
加入443, 80,例如:
<HostPortList>
<HostPort>:1935, 443, 80</HostPort>
</HostPortList>
如果443可以,就不要加80。修改後,記得重新啟動FlashCom。
如果要支援HTTP Tunneling,一定要加80。
不過通過HTTP Tunneling,視頻串流不及1935這麼穩定,但已經很難得。
8-5-2005補充
如果要Flash Player直接在1935及80進行HTTP Tunneling,則可以用: nc.connect("rtmpt://yourmachine:1935/yourapp"); or nc.connect("rtmpt://yourmachine/yourapp"); 因為Flash Player會先試RTMP 1935->443->80,才試HTTP Tunneling,中間浪費不少等候時間。
如果80是Web Server,解決方法可以參考:
- [FlashComm] Comm Server and Port 80 1,2
|