1
비공개 메시지를 보낼 수있는 채팅 앱을 개발하고 있습니다. 나는 일주일 이상 붙어있다. 비공개 메시지 부분이 올바르게 작동하지 않습니다.NodeJS Socket.io 비공개 메시지 코드가 작동하지 않습니다.
다음은 사용자가 비공개 메시지를 보내려 할 때 사용하는 코드입니다. 기본적으로 사용자가 온라인 상태인지 여부 및 사용자 dict에서 해당 사용자의 소켓을 가져 오는 지 여부를 확인합니다. 그 사용자와 그 사용자에게 직접 브로드 캐스트합니다. 이 수신기 또는 송신기 중 어느 하나에 방송되는 경우 기본적으로 다시 확인
socket.on('new message', function(data){
if(data.nick == "{{reciever}}" || data.nick == "{{user.username}}") {
displayMsg(data);
}
});
: 여기
socket.on('send message', function(data, callback){
var msg = data.trim();
var name = req.params.posteruname;
if(name in users){
users[name].emit('new message', {msg: msg, nick: socket.nickname});
users[req.user.username].emit('new message', {msg: msg, nick: socket.nickname});
}
else{
callback('Error! Enter a valid user.');
}
});
클라이언트 측 코드이다. 여기
는 새로운 사용자가 가입 할 때 코드입니다 :
socket.on('new user', function(data, callback){
if (data in users){
callback(false);
} else{
console.log(users);
callback(true);
socket.nickname = req.user.username;
users[socket.nickname] = socket;
updateNicknames();
console.log(users);
}
});
function updateNicknames(){
io.sockets.emit('usernames', Object.keys(users));
}
내가 메시지를 보내려고 할 때마다, 그것은 보낸 사람의 화면에 표시되지 않습니다와 수신기의 화면에 그렇게 두 번한다. 세 번째 사용자가 연결하면 메시지는 user1과 user2 사이에 있다고해도 세 번째 사용자의 화면에서만 브로드 캐스트됩니다.
시도해 보았지만 작동하지 않습니다. 나는 궁금해하고 있는데, 내가 가지고있는 것과는 다른 점이 무엇일까요? – blehadfas1
클라이언트 및 서버 측 코드 게시 –
게시했습니다. 지금 질문을 확인하십시오. – blehadfas1