websocket.send() 参数
Posted
技术标签:
【中文标题】websocket.send() 参数【英文标题】:websocket.send() parameter 【发布时间】:2012-06-26 06:00:51 【问题描述】:通常我们只把我们要发送的数据作为websocket.send()
方法的参数,但是我想知道是否还有其他参数比如IP可以放在括号内。我们可以这样使用吗:
websocket.send(ip, data); // send data to this ip address
或者我应该调用其他方法?
【问题讨论】:
您不能只传递地址,因为您首先需要使用websocket = new WebSocket(addresss)
建立连接。 .send
只有one argument。
我已经建立了连接。那么如果我想将数据发送到特定的IP地址该怎么办?那么
如果我创建一个websockerserver,这个服务器可以发送数据到特定的ip地址吗,我应该调用什么方法?
在两个 IP 地址之间建立了连接。如果要将数据发送到特定 IP 地址,请先建立与该地址的连接。服务器不建立连接,只建立客户端,但如果你有很多连接打开,服务器可以选择它要发送的东西。
连接已经绑定到一个特定的地址,你应该把它传递给WebSocket
构造函数。 “服务器将数据发送到特定的 IP 地址”是什么意思?服务器可以将数据发送到与其连接的套接字之一——您可能不需要在服务器端编写特定地址。
【参考方案1】:
据我了解,您希望服务器能够通过客户端 1 向客户端 2 发送消息。您不能直接连接两个客户端,因为 WebSocket 连接的两端之一需要是服务器。
这是一些伪代码 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);
);
【讨论】:
var obj = JSON.parse(str);这一行会返回一个“未定义”的错误,你知道为什么吗?我正在使用 chrome 20 测试版 @Amy:这是伪代码;str
应该是指从客户端收到的数据。我不知道您使用的是哪个库,所以您必须参考它的文档才能了解如何获取数据。
在客户端代码中我猜你应该在发送之前等待 onopen 回调。
什么是服务器对象?以上是关于websocket.send() 参数的主要内容,如果未能解决你的问题,请参考以下文章