【问题标题】:Can I use NodeJS without returning html files?我可以在不返回 html 文件的情况下使用 NodeJS 吗?
【发布时间】:2016-11-12 01:27:53
【问题描述】:

我正在为大多数网站创建一个使用 php 和 javascript 的网站。我只想将 NodeJS 用于网站上的实时聊天消息功能,有点喜欢 facebook 的。我可以在不返回任何 html 文件的情况下使用 NodeJS 吗?实用吗?

编辑: 我当前的服务器代码是这样的:

var http = require('http');

console.log("before");
var app = http.createServer(function (request, response) {

}).listen(21);

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

io.sockets.on('connection', function(socket) {
console.log("Client Connected");
});

这里是相关的客户端代码

<script type="text/javascript">

    var socketio = io.connect("localhost:21");

</script>

那么为什么客户端连接从不记录?返回 html 文件时,我已经让它工作了一段时间,但由于某种原因,这不起作用:|。

【问题讨论】:

  • 是的,当然可以。这是一个通用工具。
  • 返回 HTML?能否请您详细说明。
  • 是的,可以使用ExpressJS & Socket.io制作这种应用程序
  • 当人们已经回答了第一个问题时,您已编辑提出另一个不同的第二个问题。建议将更具体的问题移至新帖子。
  • @NeilCresswell 好的,很遗憾,我必须等待 90 分钟才能发帖

标签: javascript php node.js


【解决方案1】:

当然可以,看看这个 this,我想这可能就是你要找的。​​p>

【讨论】:

    【解决方案2】:

    可以,但是你不能使用port 21(应该换个其他端口,我用3000)。

    在客户端 html 中:

    <script src="http://localhost:3000/socket.io/socket.io.js"></script>
    <script type="text/javascript">
        var socketio = io.connect("http://localhost:3000");
    </script>
    

    【讨论】:

      【解决方案3】:

      是的,你可以,但如果你想避免使用 NodeJS,你可以使用 PHP 的 Websockets 来实现相同的目标。看看这个库,例如Ratchet library for to use Websockets in PHP

      【讨论】:

        【解决方案4】:

        把 Node 想象成一个通用服务器,而不是专门提供 HTML 页面的 Web 服务器。是的,它可以用于 HTML,但您不需要,我认为它最常用作提供 JSON 的 RESTful 服务器。

        有一些很棒的 Node 套接字库,例如 rabbit.js,它们非常适合消息传递应用程序。有些甚至附带一些聊天示例,例如更流行的 socket.io。

        【讨论】:

          【解决方案5】:

          我觉得在 PHP 系统中进行实时聊天有点困难。
          实时聊天需要将数据从客户端推送和拉取到服务器。
          PHP系统可以从服务器中提取数据(例如html)。但我认为您通常不能仅在PHP中动态地将数据发送到服务器。所以如果你想在 PHP 系统中进行实时聊天,你需要使用 AJAX 到 NodeJS API。 也请看这篇文章。
          How to integrate nodeJS + Socket.IO and PHP?

          编辑:

          我认为您应该在 io.connect() 参数中添加 http 或 https。 io.connect('http://localhost:21');

          但是您应该更改端口,因为此端口不安全。 例如 3000 会更好。

          io.connect('http://localhost:3000');
          

          您应该在服务器 js 文件中修复端口号。

          【讨论】:

            【解决方案6】:

            您几乎可以将 NodeJS 用于任何事情,并且只需几百行 Socket.IO,您就可以在众多场景中推送和流式传输数据。 Github 和其他网站上有很多关于此的信息。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-12-17
              • 2022-01-08
              • 2021-07-09
              • 2020-09-29
              相关资源
              最近更新 更多