[英]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');
});
我很感激任何幫助。 此致,
你的 Socket.IO JavaScript 將在 :3000 端口
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
還要確保您的服務器正在運行。 你可以永遠使用https://github.com/foreverjs/forever
永遠開始/path/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.