【问题标题】:Use Node.js only for chat and not to serve the index page仅将 Node.js 用于聊天而不提供索引页面
【发布时间】:2013-10-11 00:25:35
【问题描述】:

我已经问了两个问题,但我仍然无法解决问题。我正在尝试使用 Node.js 和 Socket.io 创建一个聊天应用程序。问题是我在互联网上看到的每个示例都使用 Node.js 来提供网页服务,我不想这样做;我希望 PHP 为我提供页面,我希望 Node.js 帮助我进行聊天。所以我还没有走多远。

我的 index.php 的代码如下。

<!DOCTYPE html>
<html>
<head>
    <title>Chat app.</title>
</head>
<body>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="/node:1337/socket.io/socket.io.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            var socket = io.connect('http://localhost/node:1337');
            socket.on('news', function (data) {
                console.log(data);
                socket.emit('my other event', { my: 'data' });
            });
        });
    </script>
</body>
</html>

这是我编写 Node.js 代码的 app.js 代码。

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

app.listen(1337);

io.sockets.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
});

如您所见,我希望节点通过端口 1337 相互通信,因为端口 80 已被 xampp 占用。但是每当我尝试使用浏览器访问索引页面时,控制台都会显示“访问被禁止”。顺便说一句,如果有必要,我的 index.php、app.js、node_modules 文件夹都在 htdocs/node 文件夹中。我正在使用 Windows 8 操作系统。我以前问过这个问题,但答案没有多大帮助。他们说了一些关于reverse proxy 的事情。我不知道这意味着什么,更不用说如何做到这一点了。

【问题讨论】:

  • 为什么 .js, node_modules 在 apaches' htdocs 中?客户端只需要socket.io-client.js,您似乎没有正确包含它..
  • @GeoPhoenix,谢谢你的回复,我没听明白。我应该如何包含它?

标签: php node.js sockets websocket socket.io


【解决方案1】:

我认为问题在于包含客户端 socket.io.js。我不确定 尝试将您的 socket.io.js 包含为 server:port/socket.io/socket.io.js 或查看此链接cannot get client server running using express in node.js 谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-26
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多