cloudbreadproject / cloudbread Goto Github PK
View Code? Open in Web Editor NEWCloudBread is free OSS project for mobile game and mobile app server engine powered by cloud service.
License: MIT License
CloudBread is free OSS project for mobile game and mobile app server engine powered by cloud service.
License: MIT License
CBComSelCoupon API should be implemented with uspComSelCoupon.sql stored procedure
and add on master branch.
Support for game module(notice, event, coupon...) proxy agent communication API.
게임 모듈(공지사항, 이벤트, 쿠폰)과 같은 대행 업체와 연동을 위한 API 요청
국내를 예를 들면, NHN 토스트클라우드 또는 IGAWorks 서비스와 연동을 위한 API 추가 지원 요청
CBRank API
using sid as public response - change sid to nickname
To save purchase info with independently in game logic, request the InsPurchase behavior.
error messgae information :
"message": "An error has occurred.",
"exceptionMessage": "No connection is available to service this operation: ZREVRANK cbrank",
root cause :
couple cloudbread redis sorted set function does not release client connection
resolution :
added disponse() method explicitly on CBRedis.cs file
full error message :
"message": "An error has occurred.",
"exceptionMessage": "No connection is available to service this operation: ZREVRANK cbrank",
"exceptionType": "StackExchange.Redis.RedisConnectionException",
"stackTrace": " at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor1 processor, ServerEndPoint server)\r\n at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor
1 processor, ServerEndPoint server)\r\n at StackExchange.Redis.RedisDatabase.SortedSetRank(RedisKey key, RedisValue member, Order order, CommandFlags flags)\r\n at CloudBreadRedis.CBRedis.GetSortedSetRank(String sid)\r\n at CloudBread.Controllers.CBRankController.Get(String sid)\r\n at lambda_method(Closure , Object , Object[] )\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.b__9(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()"
}
in cloudbread v2, do not use memberpwd.
in v2, use external auth provider by defaut and memberpwd is used for cloudbread v1 db schema compatibility.
As long building wiki docs on repository, for more enganced contorol - wiki pages will be moved to new cloudbread-doc repository.
Show detail SQL error message by code
SQL 오류 코드별로 상세 메세지 표시
cloudbread user mode log leaving does not work.
CB does have redis rank modue, but got request of database - rank.
It could cause performance issue.
working on it
[http://xxxxxxxxxx.azurewebsites.net/api/CBInsRegMember] - 500 Internal Server Error
UnityEngine.Debug:LogWarning(Object)
CloudBread.CBPostman:DirectWWW(WWW, Action1) (at Assets/CloudBread/Editor/CBPostman.cs:460) CloudBread.CBPostman:RequestPostmanTest(String, String, String, Action
1) (at Assets/CloudBread/Editor/CBPostman.cs:422)
CloudBread.CBPostman:DrawBodyRight() (at Assets/CloudBread/Editor/CBPostman.cs:212)
CloudBread.CBPostman:DrawBody() (at Assets/CloudBread/Editor/CBPostman.cs:70)
CloudBread.CBPostman:OnGUI() (at Assets/CloudBread/Editor/CBPostman.cs:34)
UnityEditor.DockArea:OnGUI()
라고 뜨면서 프로토콜 폴더에 C# 스크립트가 생성되지 않습니다.
https://github.com/CloudBreadProject/CloudBread-Unity-SDK
I try this but failed and error.
error code
NullReferenceException: Object reference not set to an instance of an object
CloudBread.CBToolEditor.GetClassTextFile (System.String fileName_) (at Assets/CloudBread/Editor/CBToolEditor.cs:14)
CloudBread.CBPostman.MakeStructFromJson (System.String structName_, System.String structType_, System.String jsonText_) (at Assets/CloudBread/Editor/CBPostman.cs:318)
CloudBread.CBPostman.GenerateStruct (System.String postData_, System.String header_) (at Assets/CloudBread/Editor/CBPostman.cs:287)
CloudBread.CBPostman.DrawBodyRight () (at Assets/CloudBread/Editor/CBPostman.cs:207)
CloudBread.CBPostman.DrawBody () (at Assets/CloudBread/Editor/CBPostman.cs:70)
CloudBread.CBPostman.OnGUI () (at Assets/CloudBread/Editor/CBPostman.cs:34)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:285)
UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:278)
UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at
Action plan
sorry for late.
Hi folks :)
I'm newbie to this project.
When I try to install CloudBread, I found that there is no installation guide written in English.
I think that English documentation is crucial to get interest from people but Korean.
From 유영종.
unity3d plugin bitrave bust be return json type data.
Moust of CloudBread inser/update/delete API return raw a string value for affected rows.
adding KAKAO authentication with KAKAO SDK 2.0
swagger feature reqest from team.
Swashbuckle NuGet package might be the key.
https://azure.microsoft.com/en-us/documentation/articles/app-service-api-dotnet-get-started/
Pending.
non-default value Coupon table - UpdatedAt column
(sysutcdatetime()) should be on Coupon table - UpdatedAt column as default value
Do not use unique constratin on email - because, 3rd party auth does need email
member에 email을 unique로 받지 말자 대부분 빈값이다. = 요즘 외부 인증에서는 안쓴다
change installation guide from
TO
2) install-with-sample.bat
Install all database objects , stored procedures and sample data.
install-with-sample.bat SQLSERVER USERID PASSWORD DATABASE
Hi. I'm developer signed up CB camp. I guess CloudBread's RESTful API routes can be improved for better immediacy. Let me suggest below.
API to create, read, update and delete resources.
Method: GET
/v3/:resources
/v3/:resources/:resourceID
/v3/:resources/:resourceID/:children
/v3/:resources/:resourceID/:children/:childID
Method: POST
/v3/:resources
/v3/:resources/:resourceID/:children
Method: PUT, PATCH (PUT is dominating but PATCH is also nice)
/v3/:resources
/v3/:resources/resourceID
/v3/:resources/:resourceID/:children
/v3/:resources/:resourceID/:children/:childID
Method: DELETE
/v3/:resources
/v3/:resources/:resourceID
/v3/:resources/:resourceID/:children
/v3/:resources/:resourceID/:children/:childID
Sometimes, requestements need conditions such as sorting, limiting, skipping and filtering resources.
{
"skip": 40,
"skip": 140
}
{
"limit": 30,
"limit": 10
}
{
"sort": "createdAt desc",
"sort": "username asc, updatedAt desc",
"sort": {
"field": "createdAt",
"method": "desc"
},
"sort": [
{
"field": "username",
"method": "asc"
}, {
"field": "updatedAt",
"method": "desc"
}
],
"sort": [
"username asc",
"updatedAt desc"
]
}
{
"where": [
{
"field": "balance",
"operator": ">",
"value": 4000
}, {
"field": "level",
"operator": "<",
"value": 20
}, {
"field": "username",
"operator": "contain",
"value": "BlahBlah"
}
],
"where": {
"balance": {
"operator": ">",
"value": 4000
},
"level": {
"operator": "<",
"value": 20
},
"username": {
"operator": "contain",
"value": "BlahBlah"
}
},
"where": {
"balance": [">", 4000],
"level": ["<", 20],
"username": ["contain", "BlahBlah"]
}
}
/api/CBComSelMember
=> /v3/members/:memberID
/api/CBComUdtItemList1
=> /v3/members/:memberID/items1
/api/CBSelGiftItemToMe
=> /v3/members/:memberID/gifts
Thank you!
encrypt request data and response data
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.