Hola varias cosas!
la primera :
Esto no debería ir a así !
Ahora estas intentando hacer cross-domain por eso te falla ..
Te explico :
nodejs cuando arrancas tu app el ya genera la ruta al socket.io
Este debe ser tu código mas o menos de servidor nodejs :
Código Javascript
:
Ver original//creamos el server
var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');
//importamos librerías y asociamos server el método listen para que escuche en el puerto 8080
app.listen(8080);
//esta función maneja y enruta la petición de req (request) y la respuesta res (response)
function handler (req, res) {
fs.readFile(__dirname + '/index.html', //aqui la dirección podria ser node.php
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
io.on('connection', function (socket) {
console.log(socket.id);
//cuando se establece la comunicación
//aqui hacemos todo el trabajo con los clientes/sockets conectados
//socket.io dispone de 2 eventos emit y on
//cuando es emit enviamos desde el servidor y cuando es on hacemos algo cuando recibamos
socket.on('peticion', function () {
//Se dispara este console log porque desde el navegador le enviamos el evento
console.log("Recibo una petición!");
// y nosotros respondemos
socket.emit('respuesta', { llave: 'valor' });
});
});
En resumen , primero al arrancar node creamos la ruta al script para el cliente y el manejador de rutas.
Luego del lado del cliente :
Código HTML:
Ver original<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="http://localhost:8080/socket.io/socket.io.js"></script> var socket = io.connect('http://localhost:8080');
function enviarPeticion(){
socket.emit("peticion");
}
socket.on("respuesta",function(datos){
alert(datos.llave);
});
Cuando pulsemos el botón haremo un emit y nodejs recibira una petición que desencadenara el evento respuesta y le enviará al navegador un json .
Un saludo a tod@s!