He visto este problema antes y he leído todos los documentos que puedo encontrar, pero de alguna manera no lo veo en mi código. Debe ser algo muy trivial en lo que me estoy equivocando, pero cualquier ayuda sería apreciada.
El problema es que no puedo hacer que socket.io se conecte al servidor. En el lado del servidor, aparece la 'conexión establecida', pero ninguna de mis otras consolas inicia sesión en el lado del servidor o del cliente. He seguido bastante de cerca la documentación de la gente de socket.io.
Aquí está el lado del servidor (en node.js/express por cierto):
module.exports = function(server){ console.log('what is server', server); var io = require('socket.io')(server); var ss = require('socket.io-stream'); var fs = require('fs'); var serveIndex = require('serve-index'); var path = require('path'); io.on('connection', function(socket) { console.log('connection established'); io.sockets.on('songName', function(data) { console.log('in back side socket.on'); var stream = ss.createStream(); var filename = serveIndex('/playlist/', path.basename(data.name), '.mp3'); res.writeHead(200, { 'Content-Type': 'audio/mpeg' || 'audio/mp4', 'Content-Length': stat.size }); ss(socket).emit('audioStream', stream, { name: filename }); fs.createReadStream(filename).pipe(stream); }); }); };Y aquí está el lado del cliente (y los incendios de registro de la consola sanity check2):
console.log('sanity check2'); $(document).ready(function(){ window.AudioContext = window.AudioContext||window.webkitAudioContext; context = new AudioContext(); var socket = io.connect('http://localhost:5000/socket'); socket.on('connection', function(){ console.log('front end socket connected succesfully'); socket.emit('songName', {name: 'LaNegra'}); }) socket.on('audioStream', function(stream) { console.log('in front side socket.on'); var source = context.createMediaStreamSource(stream); source.connect(context.destination); }); });Nuevamente, este es un problema bastante simple, por lo que me disculpo de antemano.
EDITAR: Lo siento, debería haber mencionado esto, pero el código del lado del servidor está en un archivo que es /sockets/socket.js y en app.js lo llamo usando app.use().