我有兩個客戶端可以通過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