簡體   English   中英

我可以使用NodeJS而不返回html文件嗎?

[英]Can I use NodeJS without returning html files?

我正在創建一個使用php和javascript進行大多數網站的網站。 我只想將NodeJS用於網站上的實時聊天消息功能,有點像facebook。 我可以使用NodeJS而不返回任何html文件嗎? 那可行嗎?

編輯:我當前的服務器代碼是這樣的:

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中使用Websocket的Ratchet庫。

我認為在PHP系統中進行實時聊天有點困難。
實時聊天需要將數據從客戶端推入服務器。
PHP系統可以從服務器中提取數據(例如html)。但是我認為您通常不能僅使用PHP動態地將數據發送到服務器。 因此,如果要在PHP系統中進行實時聊天,則需要使用AJAX到NodeJS API。 也請參閱這篇文章。
如何集成nodeJS + Socket.IO和PHP?

編輯:

我認為您應該在io.connect()參數中添加http或https。 io.connect(' http:// localhost:21 ');

但是您應該更改端口,因為此端口不安全。 例如3000會更好。

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

您應該在服務器js文件中修復端口號。

您可以將NodeJS用於幾乎任何事物,並且只需幾百行Socket.IO,就可以在多種情況下推送和傳輸數據。 Github和其他網站上有很多與此有關的信息。

將Node更像是一台通用服務器,而不是專門提供HTML頁面的Web服務器。 是的,它可以用於HTML,但是您不需要這樣做,我認為它最常用作提供JSON的RESTful服務器。

有一些很棒的Node套接字庫,例如Rabbit.js,非常適合消息傳遞應用程序。 有些甚至帶有一些聊天示例,例如更流行的socket.io。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM