Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将套接字连接到特定路径_Javascript_Node.js_Sockets_Socket.io - Fatal编程技术网

Javascript 将套接字连接到特定路径

Javascript 将套接字连接到特定路径,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,我有一个localhost:3000/home路径,我想通过socket.io将消息传递到该路径 我的js文件 var express = require('express'); var app = express(); var http = require('http').Server(app); var path = require("path"); var io = require('socket.io')(http); app.get('*', function

我有一个localhost:3000/home路径,我想通过socket.io将消息传递到该路径

我的js文件

var express = require('express');
var app = express();
var http = require('http').Server(app);
var path = require("path");
var io = require('socket.io')(http);


app.get('*', function (req, res){
  res.sendFile(path.join(__dirname, '/Public'));
});

app.use('/home',express.static(path.join(__dirname,'/Public')));

//app.use('/static', express.static(__dirname + 'index.html'));

io.on('connection', function (socket) {
  socket.on('message', function (data) {
  console.log(data)
  socket.emit('news', { hello: 'world' });
   });
    socket.on('another-message', function (data) {
    socket.emit('not-news', { hello: 'world' });
  });
});
 


http.listen(3000, function(){
  console.log('listening on *:3000');
});
我的html文件

<html>
<h1>working</h1>
<script src="/socket.io/socket.io.js"></script>
<script>
  var ioPath = "";
  iopath = '/' + 'home'+ '/socket.io'
  var socket = io.connect('http://localhost:3000', { path : iopath});
  //var socket = io.connect('http://localhost:3000');
    socket.on('connect',function(){
    socket.emit('message',{ 'msg' :'Hello server'}); 
    //socket.emit('message', 'Hello server');
  });
   socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>
<body>
    <ul id="messages"></ul>
    <form id ="target" action="">
      <input id="m" autocomplete="off" /><button>Send</button>
    </form>
  </body>
</html>

工作
var ioPath=“”;
iopath='/'+'主'+'/socket.io'
var socket=io.connect('http://localhost:3000“,{path:iopath});
//var socket=io.connect('http://localhost:3000');
socket.on('connect',function(){
emit('message',{'msg':'Hello server'});
//emit('message','Hello server');
});
socket.on('news',函数(数据){
控制台日志(数据);
emit('my other event',{my:'data'});
});
    发送
    我在浏览器控制台中遇到以下错误:“gethttp://localhost:3000/home/socket.io/?EIO=3&transport=polling&t=LA2Fcjf 404(未找到)”

    请纠正我。

    试试这个

    var io = require('socket.io')(http,{ path: '/home/socket.io'});
    
    试试这个

    var io = require('socket.io')(http,{ path: '/home/socket.io'});
    

    服务器在端口上侦听,而不是在路径上侦听。服务器在端口上侦听,而不是在路径上侦听。请尝试添加更多文本,使其看起来像是一个答案:)也许解释一下这可能有助于OP的原因?此答案简短但正确。添加参数
    {path…}
    使Web服务器在另一条路径上提供
    socket.io.js
    。在这里,客户端将能够在http:///home/socket.io/socket.io.js'尝试添加更多文本,使其看起来像一个答案:)也许解释一下这可能对OP有什么帮助?这个答案简短但正确。添加参数
    {path…}
    使Web服务器在另一条路径上提供
    socket.io.js
    。在这里,客户端将能够在http:///home/socket.io/socket.io.js'