我正在尝试为构建的webapp配置socket.io。
我已经使用npm成功安装了依赖项。
这是在服务器端执行的index.js。 (我的所有公共文件夹,包括index.html,都位于httpdocs文件夹中)
var express = require("express");
var app = express();
var port = 8080;
app.get("/", function(req, res){
res.send("Hello world!");
});
app.use(express.static(__dirname + '/httpdocs'));
var io = require('socket.io').listen(app.listen(port));
当我去http://localhost:8080时,我可以看到“你好世界!”#39;在浏览器中,当我转到http://localhost:8080/socket.io/socket.io.js它向我显示了socket.io.js文件,因此似乎工作正常。
在客户端,我似乎无法在index.html中使用以下行导入该socket.io.js
<script src="/socket.io/socket.io.js"></script>
它只是重定向到404页面并丢弃语法错误。
我认为是因为我的MAMP在客户端使用端口80作为Apache服务器。该项目作为虚拟主机运行。
<VirtualHost *:80>
ServerAdmin *my email*
DocumentRoot "*document root*/httpdocs/"
ServerName project.local
ServerAlias *.project.local
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
将侦听器端口从8080更改为80并不能解决该问题。我想我必须使用两个不同的端口进行操作。
答案 0 :(得分:0)
我也试图这样做,据我所知,你必须使用官方的Apache客户端(我无法找到Mac,我也使用它)或使用一个VirtualHost指令,但据我所知,你不能在MAMP WebStart页面上这样做。尝试使用其他服务器客户端吗?
(注意:如果我找到Mac官方Apache客户端,我将编辑此问题以在底部添加链接。)