簡體   English   中英

通過 WAMP 服務器使 Socket.IO 從本地主機工作

[英]Making Socket.IO work from localhost through WAMP Server

我對使用 websocket 很陌生。 雖然我作為專業人士在編碼方面有很多經驗,但我從來沒有必要使用套接字來獲取實時更新信息。

我了解 PHP、MySQL、HTML、CSS 和 JS(或 jQuery)。

我的項目已經在 PHP 和 MySQL 中啟動,但我需要添加一些“實時”部分。 websocket 應用程序的目標是檢查 MySQL 數據庫中表中的任何更改,並在適用時通知必要的客戶端。 我不想經常“刷新”頁面,因為在我看來這是一種草率的做事。

現在,我已經能夠遵循 Socket.IO 的幾個教程,並且我在官方網站上的聊天示例工作正常。 (使用 Express、Socket.IO 和 Node.JS)

現在的問題是我想將它集成到我的主網站中,所以我猜我應該能夠從我的主網站調用它,但它不起作用。

在尋找解決方案數小時后,我聽說層次結構很重要,所以這里是我的:

/www/
/www/Index.php
/www/LiveUpdate/
/www/LiveUpdate/index.js

所以如果我理解正確的話,index.js 應該是我的應用服務器,而 index.php 是我的網站。

現在一切都是默認的,所以我通過http://localhost/訪問網站。 我在http://localhost:3000/訪問教程一 (/LiveUpdate/Index.html)。

教程之一工作得很好,但我無法在本地主機中連接。 在過去的幾個小時里,我嘗試了很多東西,但 Vivaldi (Chrome) 總是返回這個:

POST http://localhost/LiveUpdate/socket.io/?EIO=3&transport=polling&t=M6iMHf6 404 (Not Found)

在我的 index.php 中,我有:(重要代碼的精簡版)

<script src="/LiveUpdate/socket.io/socket.io.js"></script>
<script>
    var socket = io('http://localhost/:3000', {path: "/LiveUpdate/socket.io"});
</script>

在 index.js 中:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

//app.get('/', function(req, res){
//  res.sendFile(__dirname + '/index.html');
//});

io.on('connection', function(socket){
  console.log('a user connected');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

我很感激任何幫助。 此致,

  1. 你的 Socket.IO JavaScript 將在 :3000 端口

    <script src="http://localhost:3000/socket.io/socket.io.js"></script>
  2. 還要確保您的服務器正在運行。 你可以永遠使用https://github.com/foreverjs/forever

永遠開始/path/index.js

它像守護進程一樣工作

編輯:


對於完整的工作 index.js:

<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script>
    $(function () {
        var socket = io.connect('http://localhost:3000');
    }
</script>

在您的網頁內:

 <script src="http://localhost:3000/socket.io/socket.io.js"></script> <script> $(function () { var socket = io.connect('http://localhost:3000'); } </script>

暫無
暫無

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

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