17.1한국어
릴리즈 버전: 1.7
빌드 번호: 40679
릴리즈 타입: master
릴리즈 날짜: 2018년 07월 26일 (한국시간기준)
수정된 기능 - 하위 호환성을 유지하지 않는 수정사항
프라우드넷 내부 프로토콜 버전이 바뀌었습니다. 본 버전을 적용시에는 여러분의 서버 뿐만 아니라 클라이언트도 같이 업데이트를 하셔야 합니다.
수정된 기능 - 하위 호환성을 유지하는 수정사항
암호화를 사용하지 않을때, 유효하지 않은 HostID로 RMI 통신을 시도하면 크래시가 나는 문제에 대해 수정하였습니다.
홀펀칭 과정중에 크래시가 날 수 있는 경우를 수정하였습니다.
패킷 복제 공격에 대한 내성이 더 강화되도록 수정하였습니다.
해킹당한 클라이언트에 의해 서버가 오동작할 수 있는 잠재적 버그에 대하여 수정하였습니다.
중국 등에서의 일부 네트워크 검열 장치에서 TCP 통신이 오동작하는 문제에 대해 수정하였습니다.
모바일 기기에서 도메인에 대해서 name resolution을 못하는 경우, NetClient.FrameMove가 몇초간 블러킹되는 문제에 대해 수정하였습니다.
NetServer가 메모리가 지속적으로 증가하는 문제에 대해 수정하였습니다.
RMI, UserMessage 송신 시 실패한 HostID를 알 수 있도록 Proxy 함수의 return값 및 RmiContext 아웃 파라미터를 수정하였습니다. 참조[1]
WebGL Client에서 Disconnect를 할 경우 OnLeaveServer가 호출되는 버그를 수정하였습니다. 서버에서 Disconnect하면 Client에서 OnLeaveServer가 호출됩니다.
WebGL NetClient사용 시, 네트워크가 불안정하면 재연결이 이루어지지 않는 문제에 대해 수정하였습니다.
WebGL Client로 인하여 서버에서 크래시가 나는 문제를 수정하였습니다.
WebGL NetClient를 두 개 이상 사용할 때, Disconnect후 콜백이 잘못 호출될 수 있는 문제에 대해 수정하였습니다.
WebSocketSendBytes 통계가 누적이 되지 않는 문제에 대해 수정하였습니다.
WebGL Client를 CloseConnection 했을 때 패킷이 전달되지 않아 연결이 해제되지 않는 문제를 수정하였습니다.
WebGL Client의 IP주소가 서버에서 안 나오는 문제에 대하여 수정하였습니다.
WebGL Client에게 메시지 전송시 시점 문제로 크래시가 날 수 있던 문제를 수정하였습니다.
CNetServer.Start에서 port 값 설정에 오류가 있는 경우, 더 상세하게 오류 문구가 나오도록 수정하였습니다.
help.nettention.com 도움말의 일부 오역을 수정하였습니다.
XCode 11의 iOS 64비트 관련 새 빌드 정책에도 맞도록 iOS 플러그인을 수정하였습니다.
Linux에서 빌드시 일부 헤더파일에서 빌드경고가 나오던 문제를 수정하였습니다.
Debug build에서 unique ID를 쓴 RMI 송신을 할 때, 드물게 assert fail이 뜨는 문제에 대해 수정하였습니다.
새로운 기능
Proud::CriticalSection에 Wrapping이 안된 CriticalSection 윈도우 유저 오브젝트 핸들을 얻을 수 있는 GetWin32Object 함수를 추가하였습니다.
DB cache 2에서 emoji를 핸들링하지 못하는 경우를 위해, utf8mb4를 켤 수 있는 옵션이 추가되었습니다. 자세한 내용은 http://help.nettention.com/의 CDbCacheServer2.Start 파라메터의 도움말을 참고하십시오.
기존의 GetRecentPing이나 GetLastPing을 대체하는 Latency를 구하는 새로운 함수가 추가되었습니다. 사용방법은 다음 링크의 가이드 페이지를 참고해주십시오. http://guide.nettention.com/cpp_ko#getlatency
퇴역된 사항
Unity 4를 이제 더 이상 지원하지 않습니다.
NDK r9d를 이제 더 이상 지원하지 않습니다.
STL port를 이제 더 이상 지원하지 않습니다
PiCamera 예제가 퇴역되었습니다.
참조 사항
참조[1]
RmiContext rmiContext; rmiContext.m_fillSendFailedRemotes = true; // true로 설정하면 전송실패한 HostID를 m_SendFailedRemotes에 채웁니다. if(false == m_C2SProxy.Send(hostIDArr, rmiContext...)) // hostIDArr에 있는 모든 Host에 전송을 성공하면 true를 return, 하나라도 전송을 실패하면 false를 return { for(int i = 0; i < rmiContext.m_sendFailedRemotes.GetCount(); i++) Log... } /* 주의사항 */ /* m_fillSendFailedRemotes를 사용할 경우 rmiContext값을 여러 스레드가 공유하지 않도록 해주어야 합니다. 크래시로 이어질 수 있습니다. */
17.2English
Release version: 1.7
Build: 40679
Release type: master
Date of release: Jul. 26, 2018 (Korean Time)
Fixed features - fixes that do not maintain backward compatibility
The internal protocol version of the ProudNet was changed. When you apply this version, you need to update your server as well as your client.
Fixed features - fixes that maintain backward compatibility
Fixed a problem that caused crash when attempting RMI communication with invalid HostID when not using encryption.
Fixed a case where a crash could occur during the hole punching process.
Modified to increase immunity against packet replication attacks.
Fixed a potential bug that could cause the server to malfunction by a hacked client.
Corrected the problem that TCP communication is malfunctioning in some network censors in China.
Fixed a problem where NetClient.FrameMove would be blocked for a few seconds if name resolution could not be done for the domain on the mobile device.
NetServer fixed a constant increase in memory.
Modified the return value of the Proxy function and the RmiContext out parameter to know the failed HostID when sending RMI and UserMessage. Reference [1]
Fixed a bug where OnLeaveServer is called when disconnecting from WebGL Client. Disconnecting from the server will call OnLeaveServer from the client.
Fixed the problem that reconnection will not be made when network is unstable when using WebGL NetClient.
Fixed a problem where the server crashes due to WebGL Client.
Fixed a problem where Callback may be called incorrectly after Disconnect when using more than one WebGL NetClient.
Fixed a problem where the WebSocketSendBytes statistics are not cumulative.
Fixed an issue where the connection was not released because the packet was not delivered when the WebGL Client was closed.
Fixed the problem that the IP address of WebGL Client does not come out from the server.
Corrected a problem that could crash due to time issue when sending message to WebGL Client.
If there is an error in setting the port value in CNetServer.Start, the error phrase is displayed in more detail.
Fixed some misinterpretations in help.nettention.com.
Fixed iOS plugin to match new build policy for XCode 11 with iOS 64 bit.
Fixed an issue where build warnings appeared in some header files when building on Linux.
Fixed an issue where assert fail rarely occurs when sending RMI with unique ID in Debug build.
New features
Added GetWin32Object function to get CriticalSection window user object handle without wrapping in Proud :: CriticalSection.
Added an option to turn utf8mb4 on if DB cache 2 does not handle emoji. For more information, see the help for the CDbCacheServer2.Start parameter at http://help.nettention.com/.
A new function has been added to obtain Latency that replaces the existing GetRecentPing or GetLastPing. Please refer to the guide page of the following link for usage. http://guide.nettention.com/cpp_ko#getlatency
Deprecated features
Unity 4 is no longer supported.
NDK r9d is no longer supported.
STL port is no longer supported
The PiCamera example has been deprecated.
References
Reference [1]
RmiContext rmiContext; rmiContext.m_fillSendFailedRemotes = true; // If set to true, m_SendFailedRemotes populates the failed HostID. if(false == m_C2SProxy.Send(hostIDArr, rmiContext...)) // Return true if transfer to all Hosts in hostIDArr succeeds, return false if at least one fails { for(int i = 0; i < rmiContext.m_sendFailedRemotes.GetCount(); i++) Log... } /* Precautions */ / * If you use m_fillSendFailedRemotes, you must make sure that rmiContext values are not shared by multiple threads. It can lead to a crash. * /