当前位置: 首页 > 面试题库 >

如何使用Node.js唯一标识套接字

巩选
2023-03-14
问题内容

TLDR;如何在基于事件的编程模型中标识套接字。

我刚刚开始使用node.js,过去我在C ++和PHP sockets()中完成了大部分编码工作,所以node.js对我来说是非常新的东西。

在c ++中,我们可以通过编写主套接字(例如服务器)来侦听新的连接和更改,然后相应地处理这些连接,从而完成识别套接字的工作。


问题答案:

如果您在寻找实际的套接字而不是socket.io,那么它们确实存在。

但是如上所述,Node.js和Javascript使用基于事件的编程模型,因此您创建(TCP)套接字,侦听IP:port(类似于bind),然后接受连接事件,该事件会传递表示连接的Javascript对象。

从中可以获取FD或其他标识符,但是该对象也是一个长期存在的对象,可以根据需要存储标识符(这是socket.io所做的)。

var server = net.createServer();

server.on('connection', function(conn) {
  conn.id = Math.floor(Math.random() * 1000);
  conn.on('data', function(data) {
    conn.write('ID: '+conn.id);
  });
});
server.listen(3000);


 类似资料:
  • 用了nginx代理,本想用IP做标识,但是同一局域网下的所有设备,都是共用同一IP,请问可以获取到局域网ip或者通过哪些参数组合可以区分唯一性

  • 问题内容: 如何使用数据库查询回调设置变量值?我该怎么办? 问题答案: 自从使用node.js已经有一段时间了,但是我想我可以提供帮助。 首先,在node中,您只有一个线程,应该使用回调。您的代码将发生的情况是查询将排队等待执行,但是循环将毫无意义地连续作为繁忙循环运行。 您应该可以通过以下回调来解决您的问题: 并这样使用 我在大约2年内没有编写任何node / js的代码,也没有进行测试,但是基

  • 问题内容: 直截了当:我正在使用node.js,socket.io和Redis进行私人聊天系统。 在连接时,用户将其网站ID(userID)传递给node.js服务器。他可能有多个连接,所以我必须以某种方式将(每个连接的)socketID和userID配对。我在考虑使用redis存储userID-> sessionID对。但是,当用户断开连接时,我需要从redis中删除该对。但是我只有socket

  • 唯一标识符 guid(length = 32, firstU = true, radix = 62) 该函数可以生产一个全局唯一、随机的guid,默认首字母为u,可以用于当做元素的id或者class名等需要唯一,随机字符串的地方,因为id或者class不能以数字开头。 length <Number | null> guid的长度,默认为32,如果取值null,则按rfc4122标准生成对应格式的随

  • 问题内容: 我有一个包含以下各列的mysql表: 我想使其不存在任何两行,其中行x的group_id的值等于行y的group_id的值,行x的user_id的值也等于行y的user_id的值。 因此,例如,假设我插入以下值: 上面的数据,即使一个mysql查询试图插入它,如果已经存在具有group_id和user_id相同组合的行,也不应创建新行。有没有办法做到这一点?基本上,我试图使两列协同工作

  • 本文向大家介绍Python通用唯一标识符uuid模块使用案例,包括了Python通用唯一标识符uuid模块使用案例的使用技巧和注意事项,需要的朋友参考一下 1. 背景知识:   UUID: 通用唯一标识符 ( Universally Unique Identifier ), 对于所有的UUID它可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, 命名空间, 随机数, 伪随机数来保证生