로비 데이터 전송 API
StoveMatchSDK.SendLobbyBinarydata 메서드로 매치메이킹 로비 내의 모든 유저에게 데이터를 송신합니다.
using Stove.PCSDK.NET.Matchmaking;
string lobby = this.lobby;
byte[] data = new byte[5]{ (byte)'h', (byte)'e', (byte)'l', (byte)'l', (byte)'o', };
string myProfile = "http://onstove.myprofile";
SDK.SendLobbyBinarydata(lobby, data, myProfile);
Plain Text
복사
데이터는 금칙어가 적용되지 않습니다. 마지막 파라미터(myProfile)는 데이터 그대로 전송하며, json string / 내 프로필 uri등을 전송시 활용할 수 있습니다.
로비 데이터 송수신 콜백
SDK.SendLobbyBinarydata 메서드가 실행중에 오류가 발생하면 error.result(에러 코드) StovePCMatchmakingResult에서 내용을 확인할 수 있습니다.
로비 데이터에 대한 콜백을 받기위해서는 사전에 델리게이트를 등록해야 합니다.
•
내가 로비에 데이터 전송시 OnSendLobbyBinarydata 콜백이 호출됩니다.
•
로비에서 다른 유저의 데이터 수신시 OnRecvLobbyBinarydata 콜백이 호출됩니다.
using Stove.PCSDK.NET.Matchmaking;
// 로비 데이터 전송 델리게이트를 등록
StoveMatchSDK.EventSendLobbyBinarydata += GameObj.OnSendLobbyBinarydata;
// 로비 데이터 수신 델리게이트를 등록
StoveMatchSDK.EventRecvLobbyBinarydata += GameObj.OnRecvLobbyBinarydata;
// 로비에서 데이터 전송
private void OnSendLobbyBinarydata(StovePCMatchmakingError error, StovePCMatchmakingSendLobbyBinarydata sendLobbyBinarydata)
{
// 게임 로직 처리
if (error.result == StovePCMatchmakingResult.NO_ERROR)
{
}
// 에러 처리
else
{
StringBuilder sb = new StringBuilder();
// 에러 코드
sb.AppendFormat(" - fail code : {0}", error.result);
// 구체적인 에러 내용이 있을 경우
sb.AppendFormat(" - fail message : {0}", error.message);
Debug.Log(sb.ToString());
}
}
// 로비에서 데이터 수신
private void OnRecvLobbyMessage(StovePCMatchmakingError error, StovePCMatchmakingRecvLobbyBinarydata recvLobbyBinarydata)
{
// 게임 로직 처리
if (error.result == StovePCMatchmakingResult.NO_ERROR)
{
}
// 에러 처리
else
{
StringBuilder sb = new StringBuilder();
// 에러 코드
sb.AppendFormat(" - fail code : {0}", error.result);
// 구체적인 에러 내용이 있을 경우
sb.AppendFormat(" - fail message : {0}", error.message);
Debug.Log(sb.ToString());
}
}
Plain Text
복사
로비에서 다른 유저 데이터를 수신할 수 있기때문에 주기적으로 RunCallback 메서드를 호출해야 합니다