내가 NodeJS 6 데비안 8을 실행하는거야, 그리고 IBM 왓슨의 IoT 플랫폼 주위 재생에 NodeJS 연결 개체를 유지 : https://github.com/ibm-watson-iot/iot-nodejs공유 데이터베이스/메모리
나는 IBM에서 게이트웨이를 만든 및 수
var gatewayClient = new iotf.IotfGateway(config);
gatewayClient.connect();
gatewayClient.on('connect', function(){
gatewayClient.publishGatewayEvent("status","json",'{"d" : { "cpu" : 60, "mem" : 50 }}');
});
config에 내 고유 게이트웨이에 관한 고유 한 정보가 포함되어 있습니다.
다른 NodeJS 인스턴스에서이 gatewayClient
을 재사용 할 수 있기를 바란다. 그래서 나는 다음 (의사 코드) 같은 것을 생각하고 :
var gatewayClient = new iotf.IotfGateway(config);
gatewayClient.connect();
sharedDatabase-perhaps-Redis[unique-gatewayClient-ID].push(gatewayClient);
을 그리고 동일한 서버에있는 모든 NodeJS에서 나는 호출 할 수 있습니다
sharedDatabase-perhaps-Redis[unique-gatewayClient-ID].publishGatewayEvent("status","json",'{"d" : { "cpu" : 60, "mem" : 50 }}');
내가 그것을 이해가 좋겠지 만 나는 그것이 저장 가능하고 어떻게, 그리고 레디 스가 해결책이나 다른 데이터베이스와 같은 것이 될 수 있다면 약간 혼란 스럽다.
전체 아이디어는 연결을 지속/지속성으로 유지하고 새로운 NodeJS 인스턴스의 클라이언트가 새 연결을 만들지 않고 데이터를 통해 데이터를 밀어 넣을 수 있도록하는 것입니다.
를 내 장치가 듣고 Express를 사용하여 내 NodeJS 응용 프로그램에 JSON 데이터를 게시 한 이 데이터는 게이. 웨이 연결을 통해 IBM에 게시되어야하며, 게이트웨이 연결이 설정 될 수도 있고 설정되지 않을 수도 있습니다. 그것이 확립 되었다면 사용되어야한다. 그렇지 않다면 다른 사람들이 미래에 그것을 재사용 할 수 있도록 설립되어야한다. –
아, 이제는 무슨 뜻인지 알 것 같습니다. 고유 한 클라이언트마다 새로운 연결을 만들어야합니다. 잠깐 그 점을 생각해 봅시다. – robertklep
좋아, 이제는 내가 IBM 게이트웨이 클라이언트를 저장하는 익스프레스 외부의 어레이를 단순히 만들었다는 증거를 만들었다 고 생각한다. 그런 다음 HTTP POST를받을 때 isConnected를 확인하십시오. 이것은 트릭으로 인한 것 같지만, 서버 간 (향후) 확장은 어려울 수 있습니다 ... –