【问题标题】:Clarification about nodeJS关于nodeJS的澄清
【发布时间】:2018-05-02 05:38:04
【问题描述】:

我刚刚开始学习 nodeJS,并且还在学习 socket.io 基本聊天教程。 我有问题,我敢肯定它们听起来很无知,但我真的很想了解它们:

1) 例如,nodeJS “监听”localhost:8080。但是假设我希望 socket.io 聊天位于特定页面上:localhost/chat.html,我如何使该聊天系统在localhost/chat.html 上工作,而不是在localhost:8080 上工作 (以便用户点击“chat.html”链接,聊天服务器仅在该页面中启动)

2) 对于聊天,我希望只允许注册并登录的用户能够查看该 localhost/chat.html 页面。使用 PHP,我只需检查是否使用 isset $_SESSION 设置了会话并从该会话中获取用户的 id,如何使用 nodeJS 文件让 PHP 启动会话?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    如何让聊天系统在 localhost/chat.html 上运行,而不是在 localhost:8080 上运行

    HTTP 的默认端口是80http://localhost/ 暗示 http://localhost:80/。如果需要,可以让 Node.js 监听端口 80

    (以便用户点击“chat.html”链接,聊天服务器仅在该页面中启动)

    嗯,这部分问题是无稽之谈。服务器需要运行,以便在请求进入时可以接收。

    使用 PHP,我只需检查是否使用 isset $_SESSION 设置了会话并从该会话中获取用户的 ID,如何使用 nodeJS 文件让 PHP 启动会话?

    PHP 会话通常通过 cookie 工作。您也可以在 Node.js 应用程序中使用 cookie。为了让您自己更轻松,请考虑安装 Express,以及作为模块插入其中的众多会话数据处理程序之一。

    【讨论】:

    • 您混淆了侦听(绑定到网络地址和端口)和 HTTP 路径路由。他们完全没有关系。什么托管您的静态聊天页面?
    • Socket.IO 和你的静态聊天页面有什么关系?我不知道您当前的设置是什么。你根本没有详细说明。我再次问,什么是托管您当前的页面?你说你已经处理好了路由,它位于/chat-system/chat.html。那么,只需更改它并使其成为/chat.html?我不明白你的问题。
    • 正如我已经告诉你的,如果你改变你的服务器监听端口80,你可以在URL中使用隐式端口80...http://localhost/。至于路由,本教程让您使用 Express。默认路由设置为app.get('/', ...,它被硬编码为发送index.html,这是您创建的文件。您可以简单地将/ 更改为/chat.html,然后我也将重命名该文件。更好的是,使用 Express 静态中间件。 (有关如何使用它的详细信息,请阅读 Express 文档。expressjs.com/en/starter/static-files.html
    • @pileup 不,这根本不是这样的。在继续您的应用程序之前,您应该阅读 URL 的各个部分和 HTTP 的基础知识。如果您的应用程序正在侦听端口80,并且您有/chat.html 的路由,则可以使用http://localhost/chat.html 作为您的URL。如果您正在侦听端口 8080,则 URL 为 http://localhost:8080/chat.html。它是 [协议][主机][端口][路径][查询字符串]。
    • @pileup 是的,您应该为 HTTP 使用端口 80。浏览器并不能读懂你想连接的端口。 DNS SRV 记录从未真正成为 HTTP 的东西。为什么会出现这个问题?
    猜你喜欢
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多