【问题标题】:What does the this code in socket.io meansocket.io 中的这段代码是什么意思
【发布时间】:2017-04-03 17:34:14
【问题描述】:

我是使用 socket.io 和 node.js 进行实时编程的新手。我在博客网站上看到了这段代码,遗憾的是没有对下面的代码发表任何评论或解释:

socket.on( 'new_message', function( data ) {
  io.sockets.emit( 'new_message', {
    name: data.name, 
    address : data.address
 });
});

我已经检查了 socket.io 文档,但是对于使用 XAMMP 的 PHP 服务器没有足够的解释。

我使用 PHP 作为我的服务器端脚本语言,上面的代码与 PHP 脚本通信,但是,我不知道这些代码的含义。

在socket.on 之后,有一个名字'new_message'。我不知道它是如何工作的。

另外,还有 JSON 名称:data.name,emit function,.. 我不知道这些在哪里

存在。有人会尝试解释这里发生了什么?

【问题讨论】:

  • 你为什么使用nodejs和php?
  • 我正在使用 PHP 将数据保存到数据库中。现在,对于nodejs,它运行socket.io来实时发送和检索数据到数据库中。,
  • 就个人而言,我认为这不是问这个问题的正确地方,因为基本上代码是有效的。根据我对它的了解(没有使用 Node.JS 的经验),它执行以下操作:当套接字接收到新消息时,它会向所有连接的客户端发出(发送)消息,其中包含发送者(发送消息的客户端)到套接字)名称和最可能的 IP 地址
  • 如果您更喜欢 php 作为后端,请查看 php socket.io 服务器:github.com/walkor/phpsocket.io。查看链接。为了回答您的一些问题,浏览器中的socket.on( 'new_message' ... 表示客户端正在等待来自服务器的new_mesage 数据包。如果您在我上面发布的链接中使用 php 服务器,则意味着它正在等待服务器执行$io->emit('new_message', ...
  • 你的意思是,如果我使用 PHP,我就不需要 node.js 了吗?抱歉,我是节点新手

标签: php node.js sockets


【解决方案1】:
socket.on( 'new_message', function )

当服务器receives an event (or message)命名为new_message从此套接字连接时,

io.sockets.emit( 'new_message', data )

服务器会将emit 该消息重新发送到连接到default namespace 的所有套接字。

{
    name: data.name, 
    address : data.address
}

数据将包含与原始传入事件相同的nameaddress

这条新消息也将返回到创建它的套接字,以防万一。

socket.io API docs 不是最容易阅读的,但它们确实涵盖了大部分 API。 socket.ioengine.io git repos 涵盖了其余部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 2018-01-23
    相关资源
    最近更新 更多