[英]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.