0
我在我的服务器上使用节点websocket ws
模块,我想从我的服务器向我的嵌入式设备(Arduino/GPRS模块SIM808)发送命令。我也使用过HTTP,但每次我的设备建立连接发送请求时都需要很长时间。是否可以在不使用Web浏览器的情况下通过websockets进行通信?
我应该运行下面写在arduino上的客户端来建立与webSocket ws
服务器的连接。但在我的嵌入式设备上,我没有浏览器,只能将AT
命令发送到套接字。
var ws = new WebSocket('ws://'+location.host);
ws.onopen = function open() {
// ws.send('something from client');
};
ws.onmessage = function incoming(data, flags) {
console.log(data, flags);
// flags.binary will be set if a binary data is received.
// flags.masked will be set if the data was masked.
};
function sendMessage(input) {
ws.send('From Client:' +input);
}
有什么办法,我可以通过我的嵌入式设备和网络服务器建立socket通信,我怎么可以跟web套接字服务器,而不使用网络浏览器?
我感到困惑什么是客户,什么是服务器。客户端将连接到服务器。你的arduino扮演了哪个角色(客户端或服务器)?浏览器只能是客户端,不能是服务器。 – jfriend00
另外,请记住webSocket与普通套接字不同。所以,如果您希望通过常规套接字将AT命令发送到您的arduino,那么您不能直接使用webSocket连接。你需要一个普通的TCP连接来做到这一点。然而,你可以在你的arduino上放置一个webSocket服务器,并且浏览器可以连接到这个服务器上,然后你的arduino上的webSocket服务器就可以发送所需的AT命令来响应传入的webSocket消息。 – jfriend00
@ jfriend00感谢您的意见,我将使用arduino作为客户端,并且我已经将我的webSocket服务器代码部署到Heroku,服务器工作正常,但是当我给我的arduino板登录webSocket服务器的主机名和端口号时来自串行监视器的AT + CIPSTART =“TCP”,,',它用'TCP CLOSED'来响应,这意味着没有检测到该地址。 –
developer