도쿄사는 한국 아저씨

[안드로이드] 웹소켓 클라이언트 라이브러리

iOS, Android, cocos2d-x 개발
반응형

웹소켓을 처음 적용해 보았습니다.

일반적으로 웹소켓 라이브러리를 사용 할텐데요..

처음에 아래의 Gottox 라이브러리를 적용했다가 고생좀 했습니다. 기본 기능들 다 구현하고 테스트를 하던중..

웹소켓을 connect disconnect 를 반복 할때마다 메모리 문제가 발생하여 점점 느려지는 현상이 발생하였습니다.

https://github.com/Gottox/socket.io-java-client

인터넷을 뒤져봐도 해결방법은 찾을수가 없고..


할수없이 다른 라이브러리를 찾습니다.

아래 라이브러리를 사용하여 다시 구현했습니다. 지금까지는 큰 문제 없는듯..

https://github.com/koush/android-websockets

아래의 http async 라이브러리에 통합되어 더이상 지원 안하는것 같습니다. 저는 이미 다른 라이브러리를 사용하고 있어서 그냥 웹소켓 라이브러리만 씁니다.


https://github.com/koush/AndroidAsync

728x90
반응형

Unmarshalling unknown type 에러

iOS, Android, cocos2d-x 개발
반응형

Activity 간에 Parcelable Object Array를 포함한 Parcelable Object를 넘기려고 하는데 데이터가 제대로 전달되지 않음.

Parcelabel Object 에서는 writeTypedList 와 readTypedList 를 사용하여  Parcelable Object Array를 read/write 함

dest.writeTypedList(joined_users); joined_users = new ArrayList<Test>(); in.readTypedList(joined_users, User.CREATOR); 여러가지 검토를 해보다가 Unmarshalling unknown type 에러가 발생.

문제는 아래의 코드였음. Parcelable Obejct 에서 변수를 정의하고 아래와같이 null 체크를 하면 parcel에 쓰지 않는 경우가 발생하고 위의 에러가 발생함.

다른 형태의 에러로 나타날 경우가 있어 원인을 찾기 힘들었음.


@Override
	public void writeToParcel(Parcel dest, int flags) {

		if (_id!=null) dest.writeString(_id);

	        if (email!=null) dest.writeString(email);
		if (screenname!=null) dest.writeString(screenname);
		if (profile_thumb_url!=null) dest.writeString(profile_thumb_url);
		if (profile_pic_url!=null) dest.writeString(profile_pic_url);
		if (created_at!=null) dest.writeLong(created_at.getTime());
}



728x90
반응형

[Cocos2d-X] Windows로 빌드할때 한글 깨짐

iOS, Android, cocos2d-x 개발
반응형

cocos2d-x 윈도우 버전 개발할때 LabelTTF 등을 사용하면 한글이 제대로 적용이 되지 않음.

cocos2d-x 3.2 기준으로 platform\win32 폴더의 CCDevice.cpp 파일에서 아래의 drawText 함수를 수정.


int drawText(const char * pszText, SIZE& tSize, Device::TextAlign eAlign)
...
memset(pwszBuffer, 0, sizeof(wchar_t)*nBufLen);
nLen = MultiByteToWideChar(CP_UTF8, 0, pszText, nLen, pwszBuffer, nBufLen);
 -> nLen = MultiByteToWideChar(CP_ACP, 0, pszText, nLen, pwszBuffer, nBufLen);
SIZE newSize = sizeWithText(pwszBuffer, nLen, dwFmt, tSize.cx);
...


728x90
반응형

VideoView 와 SeekBar 연동시 문제

iOS, Android, cocos2d-x 개발
반응형

안드로이드 VideoView 와 SeekBar 연동시 현재 position을 터치하여 이동할때 이동이 안되는 문제.

setMax를 하기 전에 리스너를 set 하면 안되는듯함.
mSeekBar.setMax(max);
			
mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
    startTimer();
}
				
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
    stopTimer();
}
				
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    if (fromUser) {
        mVideoView.seekTo(progress);
    }
}

});



728x90
반응형