【Unity】UnityPlayer的Socket策略文件(跨網域)

23 4月, 2016

【Unity】UnityPlayer的Socket策略文件(跨網域)







在web應用上,使用Flash或是Unity都會碰到跨網域的問題。

而跨網域,在這二個程式語言裡面都有一個標準的規範。

使用「策略文件」( cross-domain.xml ) 來解決這個安全性的問題。






策略文件當初的設置原因是為了安全性。

以Unity的流程來說,在webplayer這端,會像伺服器發出請求(預設端口843)

然後伺服器會回給webplayer一個策略文件。

之後webplayer就可以實作跨網域的部分,而不會導致程式崩潰。




這次由於專案需求,

需要使用到Unity Webplayer的Socket功能

所以會需要使用到策略文件



以下是一個簡單快速成功使用跨網域的方式。
(只測試過使用在windos平台上。)


(一)下載策略文件伺服器 (Socket Policy File Server)
下載連結:https://socketpolicyfile.codeplex.com/

(1)安裝
Socket Policy File Server v1.0安裝到作業系統上,
安裝與使用的方法
請參照https://socketpolicyfile.codeplex.com/wikipage?title=Installation%20Guide&referringTitle=Home

(2)確認服務是否有被開啟
與安裝完後,確認服務裡面的狀態是否顯示啟動。


(3)確認防火牆與路由器是否有開啟port843
由於策略文件是通過port843來與伺服器進行溝通。
伺服器主機的843port要確定是否有設定開啟,
以及你自己的外的路由器也要有開啟

(二)修改策略文件
下載完的策略伺服器,預設會放在C:\Program Files (x86)\Socket Policy File Server


然後找到SocketPolicyFile.xml
將裡面的內容更換

目前的設定是所有都可以進行連接,如果有特殊需求的話可以再自行查訊如何使用。



(三)修改Unity Client端



在程式碼加入下面這行

之後發佈成Webplayer,就能正常地使用Socket功能了。


張貼留言