일단 worker.js에
scServer.on('connection', function (client) {
console.log(`${client.id} is connected`);
});
그리고 client쪽은
var socket = socketCluster.connect();
socket.on('error', function (err) {
throw 'Socket error - ' + err;
});
socket.on('connect', function () {
console.log('CONNECTED');
});
이쯤에서 시작해보자.
클라이언트가 시작하면 서버쪽에선 client.id 가 발급되는 것을 볼 수 있다.
QVmNv2hblXhynoXOAAAE is connected
아마 이런 식으로 응답할 것이다.
DDP처럼 RPC 와 Pub/Sub을 해보자.
먼저 단순 호출+응답 형태를 구현해보자.
서버는 socket.on('connect', ...); 가 다음에 이렇게
socket.on('message.send', function (data) {
console.log(data);
});
클라이언트에선 그저 크롬 창 열고
socket.emit('message.send', { message: 'PING' });
해보자.
서버쪽에서 PING 찍히면 오케이.
이 메시지를 Pub/Sub으로 해보자.
서버쪽 구현을 변경하자.
socket.on('message.send', function (data) {
console.log('message.send', data);
scServer.exchange.publish('message.publish', {
from: socket.id,
message: data
});
});
클라이언트도 맞춰서 message.publish를 subscribe 하는 부분을 추가해보자.
var messageChannel = socket.subscribe('message.publish');
messageChannel.watch(function(data) {
console.log('message', data);
});
하. 뭐지? 너무 좋쟎아? 멀티유저도 그냥 되네?
RxDDP Server보다 이걸 먼저 만들어야겠다.
https://gomix.com/#!/project/sc-chat
gomix에 아주 간단한 채팅 앱을 pub/sub을 써서 만들어보았다. 참조.
gomix에 아주 간단한 채팅 앱을 pub/sub을 써서 만들어보았다. 참조.
댓글
댓글 쓰기