Session 是否在nodejs/redis中保存tcp会话?

Session 是否在nodejs/redis中保存tcp会话?,session,node.js,tcp,redis,Session,Node.js,Tcp,Redis,我目前正在学习node.js,通过TCP开发一个小型聊天应用程序(经典案例) 我现在想做的是扩展此应用程序以使用静态用户: 所有关于消息传递的逻辑都应该基于用户,而不是用户 会议 因此,每个会话都需要与 对用户的引用(以便应用程序可以在 正确的会话(基于用户名) 我已经研究过Redis来存储这些数据,但到目前为止还没有成功 tcpServer.on 'connection', (tcpSocket) -> tcpSocket.write "Welcome"

我目前正在学习node.js,通过TCP开发一个小型聊天应用程序(经典案例)

我现在想做的是扩展此应用程序以使用静态用户:

  • 所有关于消息传递的逻辑都应该基于用户,而不是用户 会议
  • 因此,每个会话都需要与 对用户的引用(以便应用程序可以在 正确的会话(基于用户名)
  • 我已经研究过Redis来存储这些数据,但到目前为止还没有成功

            tcpServer.on 'connection', (tcpSocket) -> tcpSocket.write "Welcome"
            redis.hmset("sessions", userid, tcpSocket)
            tcpSocket.on "data", (data) ->
                redis.hvals "sessions", (err, repl) ->
                    repl.forEach (reply, y) ->
                        reply.Write("Data is written to clients!")
        tcpServer.listen 7000
    
当前错误消息:TypeError:Object[Object Object]没有方法“write”


这表明我无法像现在这样存储tcpSocket。有没有人能告诉我,我是否可以做一些小的调整来纠正这个问题,或者我应该重新考虑这个解决方案?

Redis支持很少的数据类型:字符串、列表、集合、排序列表和哈希表。就这样。其他一些类型,如日期,可以很容易地转换为字符串或从字符串转换为字符串,因此也可以使用它。但是套接字是一个复杂的内部对象,所以您很可能无法将其转换为字符串,因此无法存储在Redis中。

Redis支持的数据类型很少:字符串、列表、集合、排序列表和哈希表。就这样。其他一些类型,如日期,可以很容易地转换为字符串或从字符串转换为字符串,因此也可以使用它。但socket是一个复杂的内部对象,因此您很可能无法将其转换为字符串,因此无法存储在Redis中。

由于socket对象在Redis中的存储非常复杂,因此似乎应该按照下面的链接向对象添加标识符

当然,该标识符可以保存在数据库中,以在不同对象之间创建不动产等


由于套接字对象在Redis中的存储非常复杂,因此似乎应该按照下面的链接向对象添加标识符

当然,该标识符可以保存在数据库中,以在不同对象之间创建不动产等