如何使Socket.IO serveClient选项工作?

时间:2018-09-06 13:41:43

标签: javascript node.js socket.io

我想在客户端脚本中使用由socket.io软件包分发的客户端。

这就是我所做的:

const IOserver = io.listen(server, { serveClient: true, path: "/socket.io.client.js" });

但是当我尝试在该路径http://localhost:1337/socket.io.client.js上访问socket.io客户端时,出现404错误。

如何正确设置socket.io以提供客户端JavaSript文件?

2 个答案:

答案 0 :(得分:0)

我认为您对path属性的作用感到困惑。 path是它用来连接到Websocket服务器的端点。

您需要手动管理前端js客户端的安装。它不会从您的服务器获取。

答案 1 :(得分:0)

我刚遇到问题。

如果要使serverClient选项起作用,则需要执行以下操作:

http版本

// app.js file

const server = require('http').createServer((req, res) => {
  fs.readFile(__dirname + '/index.html',
  (err, data) => {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading index.html');
    }

    res.writeHead(200);
    res.end(data);
  });
});
const io = require('socket.io')(server, { serveClient: true });

server.listen(1234, () => {
  console.log('Server listening at http://localhost:1234.');
})

express版本:

const express = require('express');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server, { serveClient: true });

server.listen(1234, () => {
  console.log('Server listening at http://localhost:1234.');
})

然后,您可以通过链接socket.io.js获得http://localhost:1234/socket.io/socket.io.js文件,或者通过链接socket.io.js.map获得http://localhost:1234/socket.io/socket.io.js.map文件。