前提・実現したいこと
AWSにて
HeadlessModeでLinux Buildしたunityプロジェクトを置いたEC2(Linux)から,EC2(WindowsServer)に配置したPhotonServerへ接続が出来ません.
以下の設定・実行後,~/.config/unity3d/PhotonServerSettingInc/TestProject/Player.logで確認した所,OnFailedToConnectToPhoton()が呼ばれているのでWindowsServerのセキュリティグループの問題かと思ったのですが設定を変えても接続できませんでした.参考
自端末からWindowsインスタンスにはアクセス出来ています.
<設定>
Unity
PhotonServerSettingsを以下のように設定し,下記の接続テスト用スクリプトを付けたプロジェクトを作成.
Server Addressの箇所はWindowsServerインスタンスのIPv4を入れています.
このプロジェクトを,headless ModeにチェックをいれてTarget Platform=LinuxでBuildしました.
AWS
同一VPC内で以下設定.
- Windows Serverインスタンス
ここからDLしたPhotonServerをこのインスタンスに設置.
Game Server IP Config - Set Public IP を指定.
LoadBalancing(MyCloud) - Start as applocation で起動.
- Linuxインスタンス
上記のbuildで作成したファイル類(hoge.x86_64とhoge_Data)をRLoginのSFTPファイル転送を使い/home/ec2-userに配置.
Hoge.x86_64の実行権限がないので付与→chmod u+x hoge.x86_64
実行→./hoge.x86_64
- セキュリティグループ
SSH,RDPの他に,,
上記の2インスタンス間で通信できるよう両方のインスタンスにデフォルトセキュリティグループを設定.参考.
接続テスト用スクリプト
c#
1using UnityEngine; 2using UnityEngine.UI; 3 4public class PhotonConnectTest : MonoBehaviour { 5 6 private string ROOM_NAME = "ROOM_1"; 7 8 //ローカルPC確認用. 9 [SerializeField] 10 private Text text; 11 12 13 private void Start() 14 { 15 Debug.Log("Start!!!!!!!!!!"); 16 PhotonNetwork.autoJoinLobby = true; 17 PhotonNetwork.ConnectUsingSettings("v2.0"); 18 } 19 20 21 // Lobbyへ接続成功 22 void OnJoinedLobby() 23 { 24 Debug.Log("OnJoinedLobby"); 25 26 string userId = UnityEngine.Random.Range(0, 100).ToString(); 27 PhotonNetwork.AuthValues = new AuthenticationValues(); 28 PhotonNetwork.AuthValues.UserId = userId; 29 // connect 30 31 RoomOptions roomOptions = new RoomOptions() 32 { 33 MaxPlayers = 20, 34 IsOpen = true, 35 IsVisible = true, 36 }; 37 PhotonNetwork.JoinOrCreateRoom(ROOM_NAME, roomOptions, null); 38 } 39 40 // Room作成成功 41 void OnCreatedRoom() 42 { 43 Debug.Log("OnCreatedRoom"); 44 // 自動的にOnJoinedRoom呼び出し. 45 } 46 47 void OnJoinedRoom() 48 { 49 Debug.Log("OnJoinedRoom"); 50 text.text = "Master Client:" + PhotonNetwork.isMasterClient.ToString() + "\n" 51 + "owner ID:"+ PhotonNetwork.player.ID; 52 } 53 54 //ランダムでRoomに接続失敗 55 void OnPhotonRandomJoinFailed() 56 { 57 Debug.Log("OnPhotonRandomJoinFailed"); 58 // Room作成 59 PhotonNetwork.CreateRoom(ROOM_NAME); 60 } 61 62 void OnPhotonJoinRoomFailed(object[] codeAndMsg) 63 { 64 Debug.Log("OnPhotonJoinRoomFailed"); 65 } 66 67 68 void OnFailedToConnectToPhoton(DisconnectCause cause) 69 { 70 Debug.Log("OnFailedToConnectToPhoton:" + cause.ToString()); 71 } 72 73 void OnDisconnectedFromPhoton() 74 { 75 Debug.Log("OnDisconnectedFromPhoton"); 76 } 77 78 79 private void OnGUI() 80 { 81 GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString()); 82 } 83}
発生している問題・エラーメッセージ
Initialize engine version: 2017.4.2f2 (52d9cb89b362) Forcing GfxDevice: Null GfxDevice: creating device client; threaded=0 NullGfxDevice: Version: NULL 1.0 [1.0] Renderer: Null Device Vendor: Unity Technologies AudioManager: Using Unknown: NoSound Driver Begin MonoManager ReloadAssembly - Completed reload, in 0.018 seconds WARNING: Shader Unsupported: 'Hidden/BlitToDepth' - Pass '' has no vertex shader WARNING: Shader Unsupported: 'Hidden/BlitToDepth' - Setting to default shader. WARNING: Shader Unsupported: 'Hidden/BlitToDepth_MSAA' - Pass '' has no vertex shader WARNING: Shader Unsupported: 'Hidden/BlitToDepth_MSAA' - Setting to default shader. UnloadTime: 0.693000 ms Start!!!!!!!!!! (Filename: /home/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51) Setting up 1 worker threads for Enlighten. Thread -> id: 7f7cc77fe700 -> priority: 1 Connect() to '13.231.237.3' failed: System.Net.Sockets.SocketException: Operation on non-blocking socket would block at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in <filename unknown>:0 at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00000] in <filename unknown>:0 at System.Net.Sockets.Socket.Connect (System.Net.IPAddress address, Int32 port) [0x00000] in <filename unknown>:0 at ExitGames.Client.Photon.SocketTcp.DnsAndConnect () [0x00000] in <filename unknown>:0 (Filename: /home/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51) OnFailedToConnectToPhoton:ExceptionOnConnect (Filename: /home/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51) OnDisconnectedFromPhoton (Filename: /home/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)``` ### 試したこと PhotonServerSettingsのHostingをPhoton CloudにしてAppIdを入れて試したら,PhotonCloudとLinuxインスタンスの接続が出来ることを確認しました. ### 補足情報(FW/ツールのバージョンなど) Windowsインスタンス:WindowsServer2016Base ami-0134dae8964ea643c Linuxインスタンス:Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type - ami-063fa8762cdc9a5a6 64 ビット (x86)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/28 10:12
2018/11/28 10:28
2018/11/28 11:45
2018/11/28 23:39