Sto provando a ottenere un server configurato con socket.io, con risultati negativi.socket.io - impossibile farlo funzionare, avendo 404 in una sorta di chiamata polling
Io sono per lo più seguendo questa guida, anche se è un po 'fuori moda: http://www.williammora.com/2013/03/nodejs-tutorial-building-chatroom-with.html
Il problema viene fornito con socket.io, non sono sicuro se è client o lato server. Sembra che stia cercando di interrogare continuamente il server, ma sta tornando indietro 404. Sembra che socket.io non sia in esecuzione, ma mi sembra tutto a posto. Potrebbe anche avere qualcosa a che fare con i percorsi e con una directory "pubblica", ma non lo so davvero.
127.0.0.1 - - [Thu, 17 Jul 2014 00:51:36 GMT] "GET /socket.io/?EIO=2&transport=polling&t=1405558296120-0 HTTP/1.1" 404 73 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.76.4 (KHTML, like Gecko) Version/7.0.4 Safari/537.76.4"
127.0.0.1 - - [Thu, 17 Jul 2014 00:51:37 GMT] "GET /socket.io/?EIO=2&transport=polling&t=1405558297181-1 HTTP/1.1" 404 73 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.76.4 (KHTML, like Gecko) Version/7.0.4 Safari/537.76.4"
127.0.0.1 - - [Thu, 17 Jul 2014 00:51:39 GMT] "GET /socket.io/?EIO=2&transport=polling&t=1405558299207-2 HTTP/1.1" 404 73 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.76.4 (KHTML, like Gecko) Version/7.0.4 Safari/537.76.4"
Server
var exec = require("child_process").exec;
var path = require("path");
var morgan = require("morgan");
var bodyParser = require("body-parser");
var _ = require("underscore");
var express = require("express");
var app = express();
var http = require("http").createServer(app);
var io = require("socket.io")(http);
app.set("ipaddr", "127.0.0.1");
app.set("port", 8080);
//support JSON, urlencoded, and multipart requests
app.use(bodyParser());
//log the requests using morgan
app.use(morgan());
//specify the Jade views folder
app.set("views", __dirname + "/../views");
//set the view engine to Jade
app.set("view engine", "jade");
//specify static content
app.use(express[ "static" ]("public", __dirname + "/../public")); //using map-access of static so jslint won't bitch
io.on("connection", function(socket)
{
console.log("A user connected.");
});
client
script(src="js/socket.io.js")
var socket = io.connect("http://localhost:8080");
ho ricevuto il file del client js da: node_modules/socket.io/node_modules/socket.io-client/socket.io.js
Quel percorso non corrisponde né a quello che dice il tutorial che sto usando, né a cosa dice socket.io, quindi forse questo è il problema, ma sembra che sia probabilmente il file corretto.
Qualsiasi aiuto qui?
EDIT Per ulteriori informazioni, ecco la mia gerarchia di cartelle:
Webserver/
my_modules/
server.js
node_modules/
body-parser/
express/
jade/
morgan/
socket.io/
underscore/
public/
css/
js/
server.js
views/
index.jade
index.js
package.json
Le server.js nella cartella my_modules è dove comincio socket.io sul lato server. Il server.js nella cartella js è il codice client per connettersi dal sito web.
Stai usando nginx (o altro server web) davanti al nodo? se è così, sembra che non sia proxy per il nodo correttamente. – Curious
No, solo nodo dritto, con tutte le cose che ho elencato nel mio richiede (espresso, ecc). Nessun nginx o apache. – Eli