Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
216 views
in Technique[技术] by (71.8m points)

关于node请求在socket通讯中的处理

先上个图
image.png
如图,前端请求后,后端node通过socket到客户端获取数据在返回到服务端。
列子: 1.前端get请求:/index
2.node express 设置路由 router.get(/index, (req, res) => { … 到这里需要通过socket到客户端获取数据, socket.write(XXX) })
问题:
1.当客户端通过socket返回数据到服务端时,如何把数据返回到前台。正常的返回到前端的操作如res.json(xxx)等。但当客户端通过socket传输数据时是在socket.on(‘data’, function (data)这个事件中接收,此时的上下文环境并无res对象。如吧res存在全局可res.json(xxx)返回。
2.多个socket客户端如何管理。存在一个全局集合?可能会有内存泄露的风险。
水平有限,表达的可能有问题。不知道老哥们是否明白。小弟再此磕头了,砰砰砰砰!!!望指导


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

socket 的目标, 称为服务端, 更加好理解一些吧...
按照我的理解, 应该是, 每一个请求 /index, 都通过一个函数, 返回一个Promise, 其中新建一个socket连接, 然后写入数据, 等接收完了 resolve.
如果你是保持一个长连接, 那就需要自己维护一个 socket 池吧. 但是感觉没啥必要...


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share

2.1m questions

2.1m answers

63 comments

56.7k users

...