0

试图自己解决这个问题,但失败了。

这个想法是我正在尝试运行 Yii 的“MjmChat”扩展(nodejs 上的聊天扩展)。实际上,它可以工作,但它只能在 8000 端口上工作。如果我设置任何不同于 8000 的端口,socket.io 将不为其 js 提供服务。

对于测试,我只是剪掉了所有的 nodejs 代码,所以它看起来像

var express = require('express');

var app = express(), 
    server = require('http').createServer(app),
    io = require('socket.io').listen(server);

server.listen(8000);

它位于我的测试服务器(gs-test.ru)的网络根目录中所以当我运行时

root@gs-test:/var/www/fortis/data/www/gs-test.ru# node app.js

http://gs-test.ru:8000/socket.io/socket.io.js很好地服务于 js。

但!如果我尝试将 8000 更改为 8001、9000、9999,无论如何(当然,停止当前的 app.js 然后重新启动它) - 它不起作用!就是无法加载socket.io.js。

我尝试的每个端口都是免费的(使用#netstat -ntp 测试),所以我唯一的想法是问题出在 web 服务器配置中的 apache/nginx 或 smth 上(我在 fastvps.ru VDS 上运行 debian 挤压)。

提前致谢!

4

1 回答 1

0

您是否违反了同源政策?方案、主机和端口必须匹配,否则浏览器将无法连接。许多人为此喜欢 haproxy。听起来您可以在所需端口上启动应用程序,但无法通过浏览器连接。这里也有一个快速应用程序运行吗?

于 2013-10-17T07:02:44.240 回答