通常、送信するデータはwebsocket.send()
メソッドのパラメーターとしてのみ入力しますが、かっこ内に配置できるIPなどの他のパラメーターがあるかどうかを知りたいです。このように使用できますか:
websocket.send(ip, data); // send data to this ip address
または、他のメソッドを呼び出す必要がありますか?
私が理解しているように、サーバーはクライアント1からクライアント2にメッセージを送信できるようにする必要があります。WebSocket接続の両端の1つはサーバーである必要があるため、2つのクライアントを直接接続できません。
これは、疑似コードのJavaScriptです。
クライアント:
var websocket = new WebSocket("server address");
websocket.onmessage = function(str) {
console.log("Someone sent: ", str);
};
// Tell the server this is client 1 (swap for client 2 of course)
websocket.send(JSON.stringify({
id: "client1"
}));
// Tell the server we want to send something to the other client
websocket.send(JSON.stringify({
to: "client2",
data: "foo"
}));
サーバー:
var clients = {};
server.on("data", function(client, str) {
var obj = JSON.parse(str);
if("id" in obj) {
// New client, add it to the id/client object
clients[obj.id] = client;
} else {
// Send data to the client requested
clients[obj.to].send(obj.data);
}
});