我有两个客户端可以通过socket.io交换一些数据。我也有一台服务器。我需要做的是我想通过套接字发送数据从客户端1到客户端2,我无法弄清楚我如何实现它。请注意客户端1和客户端2是不同的HTML页面。无法在socket.io中将数据从一个客户端发送到另一个客户端Node.JS
Server.JS
var express = require('express');
var app = express();
var fs = require('fs');
var path = require('path');
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var port = process.env.PORT || 3000;
var ip=process.env.IP||"192.168.1.5";
app.use(express.static(__dirname));
server.listen(port,ip, function() {
console.log('Server listening at port %d ', port);
});
app.get('/index', function(req, res) {
res.sendFile(path.join(__dirname,'/test.html'));
})
app.get('/index1', function(req, res) {
res.sendFile(path.join(__dirname,'/test1.html'));
})
io.on('connection', function (socket) {
socket.on('broadcast', function (message) {
console.log(message);
socket.broadcast.emit('message', message);
});
console.log("connected");
});
Client1.JS
<!doctype html>
<html lang="en">
<head>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script >
var socket = io.connect();
socket.emit('broadcast',"Broadcasting Message");
socket.on('message', function (data) {
alert(data)
});
</script>
</body>
Client2.JS
<!doctype html>
<html lang="en">
<head>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script >
var socket = io.connect();
socket.on('message', function (data) {
alert(data)
//socket.emit('message',"Hello world");
});
</script>
</body>
嗨通过看你的答案@rdgd感谢您的回复,我认为你是什么试图说的是,我想从我的服务器发送消息给每个客户端,但是我需要做的是将消息从客户端1发送到客户端2!我将不得不使用服务器作为中间人,我完全理解你的答案! – Jeff
他使用的是socket.io,这有助于您通过所有套接字客户端广播发送消息。 'socket.broadcast.emit()'我没有看到任何错误的代码是诚实的,它应该工作。但它看起来像还有其他东西丢失,完整的代码会帮助更多。 –
没问题丹麦语。我试图回答你的问题,从客户端1发送到客户端2,是的,除非你使用WebRTC或其他类似的东西,否则你需要使用服务器作为中间人。不知道为什么我被低估了...我的回答假定他想从y客户端定位x客户端,而不是他想要将所有消息广播到所有客户端。这在概念上起作用,因为我多次实施了类似的设计。 – rdgd