代码之家  ›  专栏  ›  技术社区  ›  TomáÅ¡ Zato

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

  •  0
  • TomáÅ¡ Zato  · 技术社区  · 8 年前

    我想在客户端脚本中使用与socket.io包一起分发的客户端。

    这就是我所做的:

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

    http://localhost:1337/socket.io.client.js 我得到一个404错误。

    如何正确设置socket.io以服务于客户端JavaSript文件?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Cloud_Ratha    8 年前

    我认为您混淆了路径属性的作用。这个 path

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

        2
  •  0
  •   Zhiqin Wu    6 年前

    我刚刚遇到了问题。

    如果希望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 .