我使用socket.io制作了一个聊天应用程序
我想创建一个功能,该功能可以在其他用户键入消息时告诉某人。最初,我的代码可以运行,但是由于某种原因它停止了。聊天功能可以正常工作。
//Query DOM
var message = document.getElementById('message');
handle = document.getElementById('handle'),
btn = document.getElementById('send'),
output = document.getElementById('output'),
feedback = document.getElementById('feedback');
//emit Events
btn.addEventListener('click', function(){
socket.emit('chat', {
message: message.value,
handle: handle.value
});
});
message.addEventListener('keypress', function(){
socket.emit('typing', handle.value);
});
//Listen for events
socket.on('chat', function(data){
feedback.innerHTML = "";
output.innerHTML += '<p><strong>' + data.handle + ' </strong>' + data.message + ' </p>';
});
// socket.on('typing', function(data){
// feedback.innerHTML = '<p><em>' + data + ' is typing a message....</em></p>';
// });
socket.on('typing', function(data){
if (data) {
feedback.innerHTML = '<p><em>' + data + ' is typing...</em></p>';
} else {
feedback.innerHTML = ''
}
});
var io = socket(server);
io.on('connection', function(socket){
console.log('Made socket connection', socket.id);
socket.on('chat', function(data) {
io.sockets.emit('chat', data);
});
});
答案 0 :(得分:0)
服务器端代码似乎没有响应客户端发送给它的“类型”事件的功能。
在您的
之内io.on('connection', function(socket){
console.log('Made socket connection', socket.id);
socket.on('chat', function(data) {
io.sockets.emit('chat', data);
});
});
阻止您包括服务器在收到来自客户端的“键入”事件时可以发送给客户端的响应。
类似
socket.on('typing', function(data){
io.sockets.emit('userState', {user: bleh, typing:
true})
})