내 응용 프로그램은 로컬 호스트에서 제대로 작동하지만 일단 업로드하면 "socket.io/?EIO=3 &"이 계속 나타납니다. transport = polling & t = Lvm1SGO "404 오류가 콘솔에 계속 표시됩니다. 죄송합니다.이 질문이 멍청한 질문인데 socket.io에서 상당히 새로 왔습니다. http://95.211.186.223/projects/webrtc/work/P2PImage/이서버에 배포 할 때 "socket.io/?EIO=3&transport=polling&t=Lvm1SGO"404 오류가 계속 발생합니다
내 client.js 파일 :
// this file is meant to be browserified
var P2P = require("socket.io-p2p");
var io = require("socket.io-client");
var ss = require("socket.io-stream");
var socket = io();
var opts = {autoUpgrade: true, peerOpts: {numClients: 10}};
var p2p = new P2P(socket, opts);
var $ = require("jquery");
p2p.on("peer-num", function(num) {
console.log("You are peer number " + num);
$(".peerNum").html("Number " + num);
});
p2p.on("file", function(stream) {
//console.log(stream);
var img = document.createElement("img");
img.src = (window.URL || window.webkitURL).createObjectURL(new Blob(stream));
document.getElementById("receivedImages").appendChild(img);
});
$(function() {
$("#file").change(function(e) {
ss.forceBase64 = true;
var file = e.target.files[0];
var stream = ss.createStream();
ss(socket).emit("file", stream, {size: file.size,name:file.name});
var blobStream = ss.createBlobReadStream(file);
var size = 0;
blobStream.on("data", function(chunk) {
size += chunk.length;
console.log(Math.floor(size/file.size * 100) + "%");
});
blobStream.pipe(stream);
});
});
내 server.js 파일 :
var app = require("express")();
var express = require("express");
var server = require("http").Server(app);
var p2pserver = require("socket.io-p2p-server").Server;
var io = require("socket.io")(server);
var ss = require("socket.io-stream");
var path = require("path");
app.use(express.static(__dirname));
io.use(p2pserver);
var peerNum = 0;
io.on("connection", function(socket) {
console.log("Peer " + peerNum + " connected");
io.emit("peer-num", peerNum);
peerNum++;
ss(socket).on("file", function(stream, data) {
var filename = path.basename(data.name);
var parts = [];
stream.on("data", function(data) {
parts.push(data);
});
stream.on("end", function() {
socket.broadcast.emit("file", parts);
});
});
});
server.listen(3000, function() {
console.log("Listening on 3000")
});
아파치 서버는 다음과 같습니다. http://95.211.186.223/projects/webrtc/work/P2PImage/socket.io Socket.io는 node.js 스크립트에서만 사용할 수 있습니다.아파치에 프록시를 추가하거나 nginx를 설치하거나 익스프레스 서버가 청취하는 포트를 변경해야합니다. – Larce
나는 본다. 고맙습니다. "또는 익스프레스 서버가 청취중인 포트를 변경하십시오." Ngnix를 사용하지 않는 솔루션이 있다는 것을 의미합니까? 그렇다면 어떻게 수행 할 수 있습니까? 다시. 바보 같은 질문에 정말 죄송합니다. 나는 이것에 아주 새롭다. –