2011-11-09 3 views
2

node.js에 양방향 RPC를 구현할 방법을 찾고 있습니다. 클라이언트와 서버가 원격 호출 절차를 제공하므로 json-rpc와 같은 것이 좋습니다. 클라이언트의 경우 socket.io 및 TCP/IP 소켓에서 사용할 수 있어야합니다. 나는 웹 소켓 용으로 nowjs을 사용하려고했고 "일반"소켓 용으로 별도의 API를 제공하려고했다.TCP 소켓 + socket.io 양방향 (JSON-) RPC : dnode?

이제는 방금 두 가지로 작동한다고 주장하는 dnode을 발견했습니다. "이것은 네트워크 소켓을 통해 작동하고 심지어 socket.io를 사용하는 브라우저에서도 작동합니다."

JSON 개체 (문자열 포함)을 서로 연결해야합니다. 클라이언트는 JavaScript (브라우저), JavaScript (Appcelerator Titanium), C#Java (Android)로 작성되지만 Java 용 구현 만 있습니다. protocol을 읽었으며 구현하기 쉽지 않다고 생각합니다.

또한 메서드 이름 교환은 내 응용 프로그램에서 꽤 오버 헤드가 될 연결이 설정되어있다, 나는 내가 다른 측면 (그것은 공개 API가 아니에요) 구현 무엇을 알고 필요가 없습니다.

누군가가이 기능을 사용하고 있거나 다른 방법을 알고 있습니까? 그것이 내 목적에 맞는 것인지 확실하지 않습니다. CRUDPUB/SUB을 구현해야합니다. 을 Socket.IO에

+1

Dnode와 nowjs는 둘 다 메소드 이름 교환을 수행합니다. socket.io를 사용하지 않은 이유는 무엇입니까? – thejh

+0

socket.io에서 좋은 것이 아닌 요청에 응답해야합니다 (새 이벤트 방출). nowjs에는 멋진 콜백 함수가 있습니다. 지금이야? 몰랐어요 ... – Eliasdx

답변

5

사용, 그것은 메모리 또는 레디 스 팝/하위 구현을 저장할 수 있습니다 객실 지원합니다. 네임 스페이스 소켓을 사용하고 CRUD 이벤트를 제공 할 수도 있습니다. 여기

var io = require('socket.io').listen(80); 

var someResource = io 
    .of('/someResource') 
    .on('create', function (socket) { 
    createSomeResource() 
    }) 
    .on('read', function(socket) { 
    readSomeResource(id, function(){ 
     io.sockets.in('roomBasedOnSessionId').emit('data', {my:'json'}) 
    }) 
    }) 

소켓 및 세션 공유에 대한 참조를 포함하여 당신이 필요합니다 항목 중 일부의 연습이다. http://www.danielbaulig.de/socket-ioexpress/

+1

예 지금 socket.io를 사용하고 있습니다. socket.io가 콜백/직접 응답을 지원한다는 것을 알게되었습니다. 그것은 "사용법"에 숨겨져 있습니다. – Eliasdx