node.js - 在服务器端生成 socket.io 作为 Rest 请求

标签 node.js websocket socket.io

有一种方法可以在服务器端管理 socket.io 创建吗?,目前,我找不到任何文档,仅找到与客户端的每个请求创建的套接字相关的“io.connect (服务器)”

当前流程工作正常:

  1. 将 Socket.io(在 Node.js 中)设置为 SERVER:PORT
  2. 客户端连接到服务器
    • 使用 io.connect(SERVER:PORT)

请问可以吗?尝试做:

  1. 在 SERVER:PORT 处设置 Socket.io(在 Node.js 中)
  2. 收到 POST (REST) - 服务器端
    • 在服务器端创建/打开 Socket.io。
    • 在帖子回复时发送 ID?
  3. 客户端打开一个 socke.io

发送到客户端socket.id作为客户端

最佳答案

到目前为止,深入研究代码和文档,我发现socket.io支持命名空间,所以我用它来管理客户端连接ID。

在 server.js

  var app = express();
    var server = require('http').createServer(app),
    io = require('socket.io').listen(server,{ log: false });
    // Rest New Process
    function generateNameSpaceWs (responce, request) { 
       io.of("/" + id).on('connection', handler);
      response.send(id);
    }
    app.post("/newWS", function (res, req) {
       return generateNameSpaceWs(res, req);
    }

在 Client.js

function makeWS(){
    var ws, c = new XMLHttpRequest();
    c.open("GET", url, false);
    c.send();
    if (c.status == 200){
        id = JSON.parse(c.responseText);
         ws = new io.connect("server/" + id)
}

关于node.js - 在服务器端生成 socket.io 作为 Rest 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15275395/

相关文章:

Spring Boot - websocket Controller 问题

javascript - Node.js + Socket.io + Apache

java - 我可以将 Socket.io 与 Spring-boot 一起使用吗?

javascript - Node.js 中基于好友的系统

node.js - Node.js模拟POST请求后如何访问response Body?

javascript - 使用 eval 动态渲染后端提供的 JSX

javascript - 可以在 NodeJS/Javascript 中使用 while/for 循环将此递归代码编写为迭代代码吗

sockets - 我可以将 socket.io 与 Play Framework 2.0 Web Sockets 一起使用吗?

javascript - Socket.io 从接收者的浏览器发出,但不在发送者的浏览器上发出

javascript - 为什么 TS 不生成纯 JavaScript 代码,而是生成 Node.js 函数?