Spring Boot
- 주언어 : Java
- Link : https://spring.io/projects/spring-boot
- WebSocket : org.springframework.web.socket
- MVC : thymeleaf 를 포함하여 여러가지 뷰템플릿 선택가능
Routee 정의 방법
@Controller @RequestMapping(path="/") //이 클래스의 루트 Router를 설정한다. public class UserSearchAPI { }
Get Method 코드 샘플
@GetMapping(path="/usersearch") //이 멤버함수의 하위 주소를 설정한다. public @ResponseBody List<User> userSearch( @RequestParam String name, @RequestParam int pagenum, @RequestParam int pagesize ){ PageRequest pageReq = new PageRequest(pagenum, pagesize); Page<User> userPage =userPageRepo.findByNameContaining(name,pageReq); return userPage.getContent(); }
PlayFrameWork
- 주언어:Java/Scala
- Link : https://www.playframework.com/
- Websocket: AkkaStream or Atmosphere
- MVC : Twirl 포함됨 ( ASP.NET Razor 에서 고안됨)
- 사용한 사례:상용 게임 로비 API 서비스에서 이것을 이용하여 개발함 PokerGame
Routee 정의 방법
GET /rest/GameInfo GameInfo()
Get Method 코드 샘플
def GameInfo = Action { Ok( Json.toJson( "할롱") ) }
서비스 실행코드
play run "9000"
Microsoft.Owin.Hosting(ASP.net)
- 주언어:C# , Open소스이지만, Micorosoft의 네임스페이스에 포함된것으로 보아 IIS와는 별개로 MS에서 밀어주는듯
- 변경사항 : Asp.net 에 표준으로 입성함 (IIS가 없어도 서비스가 가능함 )
- Link : http://owin.org/
- Wesocket:WesocketSharp,SuperWebSocket , SignalR
- MVC : ASP.net 에 IIS.Hosting을 밀어내고 이미 통합되었으며 ASP.net의 Razor를 포함하여 여러가지 선택가능
Routee 정의 방법
Get["/GameInfo/{tid}", runAsync: true] = async (_, token) => .......
Get Method 코드 샘플
public async Task<Response> GameInfo(int tourId){...}
서비스 실행코드
var host = new NancyHost(new Uri("http://localhost:9000"); //Host 여러가지 선택가능,Nancy는 한가지 호스팅 방법임(IIS 종속을 없애기위해 NancyHost를 선택함) host.start()
Node.js
- 주언어:Javascript
- Link : https://nodejs.org/ko/
- Wesocket:Socket.io
- MVC : Express, Jade를 포함하여 여러가지 View엔진을 선택할수 있음
Routee 정의 방법
app.use('/', routes);
Get Method 코드 샘플
router.get('/GameInfo', function(req, res, next) { res.send('respond with a resource'); });
서비스 실행코드
server.listen(80, function () { console.log('Example app listening on port 80!'); });