我正在尝试设置socket.io聊天服务器.我已经把它从服务器和客户端发送和接收消息了.如果有人打字,我有兴趣向用户展示.我知道当一些人从客户端输入到服务器时我可以发出声音,我也可以将其广播给其他用户.但是,在每个密钥上执行此操作会有效吗?我该如何处理这种情况?以下是我现在的代码:
$("#textbox").keyup(function (e) {
if (e.keyCode == 13) {
socket.emit('send', {nickname: $('#nickname').val() , msg: $("#textbox").val()});
$('#textbox').val(''); }
else{
socket.emit('is typing', {nickname: $('#nickname').val()});
}
});
Run Code Online (Sandbox Code Playgroud)
在服务器端:
socket.on('is typing', function(data){
socket.broadcast.emit('typing', {nickname: data.nickname});
});
Run Code Online (Sandbox Code Playgroud)
abj*_*ror 23
您可以使用超时发送"已开始输入"和"已停止输入"消息,如下所示:
var typing = false;
var timeout = undefined;
function timeoutFunction(){
typing = false;
socket.emit(noLongerTypingMessage);
}
function onKeyDownNotEnter(){
if(typing == false) {
typing = true
socket.emit(typingMessage);
timeout = setTimeout(timeoutFunction, 5000);
} else {
clearTimeout(timeout);
timeout = setTimeout(timeoutFunction, 5000);
}
}
Run Code Online (Sandbox Code Playgroud)
这很糟糕,但你应该明白这个想法.
| 归档时间: |
|
| 查看次数: |
18153 次 |
| 最近记录: |