node.js - Keep getting "socket.io/?EIO=3&transport=polling&t=Lvm1SGO" 404 errors when I deploy on server -


my app works fine on localhost once upload keep getting "socket.io/?eio=3&transport=polling&t=lvm1sgo" 404 errors keep listing in console. sorry if stupid question new socket.io. here can inspect , see error in action: http://95.211.186.223/projects/webrtc/work/p2pimage/

my client.js file:

// file meant 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 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);   }); }); 

my server.js file:

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

you problem trying contact nodejs server on apache server.

this this: description apache

the problem apache doesn't know how handle incoming socket.io request. simplest option expand server , let socket.io connect port: description apache , socket.io

so same before.

in example setup, have apache installed on dev server (like 1 mentioned). have access servers shell.

  1. transfer files holding express , socket.io files server (besides web root directory, not in /var/www. recommend put in /home/myusername/[productname]).

  2. make sure nodejs , npm installed on server

  3. if didn't transfer node_modules, execute npm install install packages.

  4. set port other 80 - 3000. remember number.

  5. start server on client (node index.js or similar)

  6. if access server know via port 3000 (http://myserverdomainorip:3000) should same results on client. want (or have) use apache web server. open in apache web files file starts socket.io client. there should line around this: var socket = io();. change socket.connect('http://myserverdomainorip:3000');

so static files serverd on apache, socket.io connection established nodejs server.

i hope understand bit right know. apache , socket.io bit complicated.


Comments

Popular posts from this blog

Sort a complex associative array in PHP -

vb.net - How to ignore if a cell is empty nothing -

recursion - Can every recursive algorithm be improved with dynamic programming? -