Según lo he entendido, desde http://socket.io/#how-to-use, node.js sirve automáticamente el archivo socket.io en el servidor.Socket.io no está servido por el servidor Node.js
He instalado socket.io con npm install socket.io
y puedo ver que reside en node_modules
un nivel por encima de la raíz del servidor.
server.js:
var static = require('./plugins/node-static');
var socketIO = require('socket.io');
var clientFiles = new static.Server('./client');
var http = require('http');
httpServer = http.createServer(function (request, response) {
request.addListener('end', function() {
clientFiles.serve(request, response);
});
}).listen(8253);
var webSocket = socketIO.listen(httpServer);
webSocket.on('connection', function(client) { .....
index.html:
<html>
<head>
<title>Chat</title>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.5.2.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var webSocket = new io.Socket('localhost', { port: 8253 });
webSocket.connect(); .......
Inicio del servidor trabaja muy bien, pero al abrir index.html, recibo el siguiente error:
GET http://localhost:8253/socket.io/socket.io.js 404 (Not Found)
Uncaught ReferenceError: io is not defined :8253/:25
Ideas?
"Veo que reside en node_modules un nivel por encima de la raíz del servidor". ¿Qué quiere decir con "raíz del servidor"? No se confunde con ningún rastro de apache, tal vez? Los módulos instalados por NPM residen en los repositorios de NPM, no tienen que estar en ninguna parte en relación con el script del nodo principal de su proyecto. Un 'require ('socket.io')' satisfactorio indica que la instalación está bien y que el problema está en el código. – Kos