2017-08-29 43 views
0

我在使用ExpressJ的node.js上使用socket.io。当我提供我的html页面时,我在脚本标记中硬编码了socket.io.js文件链接: <script src="/socket.io/socket.io.js"></script>客户端上的Socket.io路径,如何将其与我的node.js服务器目录树相匹配?

我不知道如何将它匹配到我的目录树。这是因为如下:

enter image description here

它位于埋在在 'node_modules' 文件夹。

我index.js看起来是这样的:

const PORT = 3000; 
const express = require("express"); 
const server = express(); 
const http = require("http").Server(server); 
const path = require("path"); 
const io = require("socket.io")(http); 

server.use(express.static(path.join(__dirname + "/public"))); 
server.use(express.static(__dirname + "/public/css")); 
server.use(express.static(__dirname + "/public/js")); 


server.listen(PORT, function() { 
     console.log("server listening on port " + PORT); 
}); 

io.on("connection", function(socket){ 
     console.log("user connected"); 
}); 

回答

1

你只需要改变server.listenhttp.listen,也将努力

+0

太棒了,修复了它。 – erv

0

socket.io文件是由节点服务器,当你开始听插座端口动态服务。它不存在于目录结构中。

在你的情况下,你需要添加脚本路径为http://YOUR_NODE_SERVER_HOST_NAME:SOCKET_PORT/socket.io/socket.io.js。我的情况是http://localhost:3000/socket.io/socket.io.js

+0

这是越来越受我的代码,担任了在动态以上的路径。所以当我硬编码它时,我得到了相同的错误(有时它说404错误,其他时间,这只是一个红色的十字错误与该网址和链接到它的HTML文件中的行。控制台) – erv

相关问题