我有一个node.js服务器正在运行。它通过socket.IO接受消息。
我需要从某些设备向服务器发送消息。此设备支持Javascript,但不支持socket.IO命令(这很奇怪,但这就是我所拥有的)。
我尝试以下列方式解决这个问题:
在我的服务器上,我放了一个发送socket.IO消息的send.html文件:
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script>
var socket = io('http://localhost:3000/');
socket.emit('message', 'messages sent');
</script>
如果我只是调用此文件(localhost / send.html),那么一切正常。
然后我尝试通过设备中的ajax调用send.html:
<script>
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://localhost/send.html", true);
xmlhttp.send();
</script>
并且......没有任何反应。
如果我尝试从设备调用任何其他.html文件,那么它可以工作。这让我觉得socket.IO连接不能被ajax调用的文件打开。
但是我无论如何都找不到这个事实,无论如何,我仍然需要找到一种方法将数据从设备发送到socket.IO。
有谁知道如何解决这个问题,还是可以想到另一种解决方案?