我可以在不返回 html 文件的情况下使用 NodeJS 吗?

Can I use NodeJS without returning html files?

本文关键字:NodeJS 情况下 返回 html 文件 我可以      更新时间:2023-09-26

我正在创建一个网站,该网站使用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 文件时让它工作了一段时间,但由于某种原因这不起作用:|。

当然可以,看看这个,我想这可能是你要找的。

是的,但你不能使用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>

是的,你可以,但是如果你想避免使用NodeJS,你可以使用Websockets for PHP来实现相同的目标。看看这个库,例如棘轮库,以便在PHP中使用Websockets

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

有一些

很棒的 Node 套接字库,比如 rabbit.js这对于消息传递应用程序来说是完美的。有些甚至带有一些聊天示例,例如更流行的 socket.io。

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

编辑:

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

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

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

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

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