簡體   English   中英

連接上的Socket.io無法正常工作

[英]Socket.io on connect not working

我之前已經看過這個問題,並且已經閱讀了所有可以找到的文檔,但是以某種方式我只是在代碼中看不到它。 我弄錯了一定很瑣碎,但是任何幫助都將不勝感激。

問題是我無法使socket.io連接到服務器。 在服務器端顯示“已建立連接”,但我的其他控制台均未在服務器或客戶端上登錄。 我已經非常仔細地遵循了socket.io的文檔。

這是服務器端(在node.js / express btw中):

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);
  });
});
};

這是客戶端(以及健全性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);
  });


});

同樣,這很可能是一個非常簡單的問題,因此我提前致歉。

編輯:對不起,我應該提到這一點,但是服務器端代碼在/sockets/socket.js文件中,而在app.js中,我使用app.use()對其進行了調用。

在服務器端實現上,您需要更改行

io.sockets.on('songName', function(data) {

socket.on('songName', function(data) {

我相當確定這應該可行。 抱歉,我只想發表評論,請您在提交答案之前嘗試一下,但我無法發表評論,因此我的聲譽降低了1分。 如果這樣不起作用,請通知我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM