Javascript 将套接字连接到特定路径
我有一个localhost:3000/home路径,我想通过socket.io将消息传递到该路径 我的js文件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
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'