Socket.IO 1.0의 특정 ID로 메시지 보내기
하나의 특정 소켓 ID로 데이터를 보내고 싶습니다.
이전 버전에서이 작업을 수행 할 수있었습니다.
io.sockets.socket(socketid).emit('message', 'for your eyes only');
Socket.IO 1.0에서 비슷한 작업을 수행하려면 어떻게해야합니까?
socket.io 1.0에서는 더 나은 방법을 제공합니다. 각 소켓은 자체 ID로 기본 방에 자동으로 참여합니다. 문서 확인 : http://socket.io/docs/rooms-and-namespaces/#default-room
따라서 다음 코드를 사용하여 id로 소켓에 내보낼 수 있습니다.
io.to(socketid).emit('message', 'for your eyes only');
socket.io 1.0에서는 다음 코드로이를 수행 할 수 있습니다.
if (io.sockets.connected[socketid]) {
io.sockets.connected[socketid].emit('message', 'for your eyes only');
}
최신 정보:
@ MustafaDokumacı의 답변에는 더 나은 솔루션이 포함되어 있습니다.
@Mustafa Dokumacı와 @Curious는 이미 충분한 정보를 제공했으며 소켓 ID를 얻는 방법을 추가하고 있습니다.
소켓 ID를 얻으려면 socket.id를 사용 하십시오 .
var chat = io.of("/socket").on('connection',onSocketConnected);
function onSocketConnected(socket){
console.log("connected :"+socket.id);
}
네임 스페이스를 사용한 경우 다음이 작동하는 것으로 나타났습니다.
//Defining the namespace <br>
var nsp = io.of('/my-namespace');
//targeting the message to socket id <br>
nsp.to(socket id of the intended recipient).emit('private message', 'hello');
네임 스페이스에 대한 추가 정보 : http://socket.io/docs/rooms-and-namespaces/
@Curious와 @ MustafaDokumacı 모두 잘 작동하는 솔루션을 제공했다고 생각합니다. 그러나 차이점은 @ MustafaDokumacı의 솔루션을 사용하면 메시지가 특정 클라이언트뿐만 아니라 방으로 방송된다는 것입니다.
승인이 요청 될 때 차이가 두드러집니다.
io.sockets.connected[socketid].emit('message', 'for your eyes only', function(data) {...});
예상대로 작동하지만
io.to(socketid).emit('message', 'for your eyes only', function(data) {...});
실패하다
Error: Callbacks are not supported when broadcasting
Node.js-> socket.io-> 다운로드하는 채팅 예제가 있습니다. Paste in line (io on connection) 부분 .. 나는 100 % 작동하는이 코드를 사용합니다.
io.on('connection', function(socket){
socket.on('chat message', function(msg){
console.log(socket.id);
io.to(socket.id).emit('chat message', msg+' you ID is:'+socket.id);
});
});
참고 URL : https://stackoverflow.com/questions/24041220/sending-message-to-a-specific-id-in-socket-io-1-0
'program story' 카테고리의 다른 글
객체-관계형 매핑 프레임 워크 란 무엇입니까? (0) | 2020.10.06 |
---|---|
Chart.js를 사용하여 도넛 차트 내부에 텍스트를 추가하는 방법은 무엇입니까? (0) | 2020.10.06 |
yii2에서 드롭 다운 목록을 만드는 방법은 무엇입니까? (0) | 2020.10.06 |
Android에서 밀리 초를 날짜 형식으로 변환하는 방법은 무엇입니까? (0) | 2020.10.06 |
인터뷰 질문 : 새 노드를 만들지 않고 정렬 된 두 개의 단일 연결 목록 병합 (0) | 2020.10.06 |