需要帮助理解 Socket.io(node.js) 中的以下 jQuery 代码?

Posted

技术标签:

【中文标题】需要帮助理解 Socket.io(node.js) 中的以下 jQuery 代码?【英文标题】:Need help understanding the following jQuery code in Socket.io(node.js)? 【发布时间】:2015-08-30 22:12:25 【问题描述】:

html 文件

<script>
  var socket = io();
  $('form').submit(function()
    socket.emit('chat message', $('#m').val());
    $('#m').val('');
    return false;
  );

  socket.on('chat message', function(msg)
    $('#messages').append($('<li>').text(msg));
  );
</script>

io.on( "connection", function(socket)

  console.log( "A user connected" );

  socket.on('disconnect', function()
    console.log('user disconnected');
  );

  socket.on('chat message', function(msg)
    console.log('message: ' + msg);
  );

  socket.on('chat message', function(msg)
    io.emit('chat message', msg);
  );

);

我不明白jQuery语法中的这部分代码:

$('#m').val('');
return false;

既然我已经通过socket.emit('chat message', $('#m').val()); 发送我的套接字输入值,为什么输入字段“m”(它只是我表单中的一个输入字段)需要设置为空字符串?然后返回 false 部分之后?代码运行良好,来自socket.io/chat

请解释一下jQuery方面。

【问题讨论】:

$('#m') 听起来像聊天输入消息框。发送消息后将其设置为空是有意义的。 return false 阻止 &lt;form&gt; 元素提交 【参考方案1】:

逐行看:

socket.emit('chat message', $('#m').val());

此行以#m 字段中指定的值发送聊天消息。

$('#m').val('');

消息发送后,此行清除#m字段中的值。

return false;

返回 false 会停止默认事件行为,在这种情况下会阻止 form 元素提交。如果您愿意,也可以在传入的event 上使用preventDefault()

【讨论】:

以上是关于需要帮助理解 Socket.io(node.js) 中的以下 jQuery 代码?的主要内容,如果未能解决你的问题,请参考以下文章

STOMP 上的重复事件 Socket.io 和 Node.js

如何使用 Node JS 服务器在 Socket.io 中进行一对一聊天?

Node.js、多线程和 Socket.io

简单的游戏循环 Socket.io + Node.js + Express

Node.js 和 Socket.io 创建房间

Socket.io聊天示例node.js需要