我在控制檯GET http://localhost/socket.io/socket.io.js 404(Not Found)中收到此錯誤。我用npm install來安裝express和socket.io。
每次我嘗試訪問本地主機:3000它的下載,而不是顯示chat.php
文件這是我的javascript代碼使用socket.io,socket.io.js未找到問題
var express = require('express')
var app = express()
, http = require('http')
, server = http.createServer(app)
, io = require('socket.io').listen(server);
server.listen(3000);
users = [];
connnection = [];
console.log('Server running!');
app.get('/',function(req, res){
res.sendFile(__dirname + '/game.php');
});
io.sockets.on('connection', function(socket){
connections.push(socket);
console.log('Connected: %s sockets connected', connections.length);
//Disconnect
socket.on('disconnect', function(data){
connections.splice(connections.indexOf(socket),1);
console.log('Disconnected: %s sockets connected', connections.length);
});
});
這是我加入PHP文件
<script src="/socket.io/socket.io.js"></script>
<script>
$(function(){
var socket=io.connect();
});
</script>
你期待與你一起發生'res.sendFile(__ dirname +'/game.php')'?你知道PHP不會在用戶的瀏覽器中運行,但只能在服務器上運行,因此將PHP文件發送到瀏覽器(這正是你正在做的)不會做一些有用的事情嗎?當你做'res.sendFile(__ dirname +'/game.php');'?時,你想要發生什麼? – jfriend00
@ jfriend00我是這個socket.io的新手,我正在學習一個教程。在訪問本地教程時,訪問本地主機:3000它被重定向到chat.html – Daniel
我想我會看到...當你通常去(例如)www.example.com/page.php你會看到網頁,它會出現工作方式與您訪問www.example.com/page.html時相同 但是,php url實際上會返回php文件的HTML解釋。在這個例子中,我不相信這會起作用,因爲node.js首先不會通過解釋器運行你的'game.php'。如果您將它重命名爲'game.html',它應該按預期工作,因爲文件中沒有php代碼。 –