1.在虚拟机服务器的apache上有index.html文件。文件内有如下js代码(根据官网例子改写):
ws = new WebSocket("ws://127.0.0.1:2345");
ws.onopen = function(){
ws.send("ceshi");
};
ws.onmessage = function(e){
document.getElementById('show').innerHTML = e.data;
};
ws.onclose = function(e) { alert('WebSocketClosed!'); };
function sendText(){
ws.send(document.getElementById('content').value);
};
2.同时在这个服务器开启一个worker:
------------------------ WORKERS -------------------------------
user worker listen processes status
root none websocket://0.0.0.0:2345 1
----------------------------------------------------------------
3.为什么在宿主机的浏览器访问虚拟机的index.html,无法连接这个worker呢?
因为你在宿主机访问127.0.0.1这个ip访问不到你的虚拟主机,你可以写虚拟主机的ip试下
换了虚拟主机的ip的确可以了。谢谢Walker。 只是我现在想用花生壳把worker服务映射到外网。花生壳可以把虚拟机器地址(192.168.4.250:2345)映射, 映射后,外网访问的地址为http ://xxxxxx.net. 不知道该怎么写js协议里的地址呢?是不是用花生壳映射这样做不行?
想把worker服务开到外网, 应该怎么做.有相应的教程吗?
感觉是不是如果想用花生壳这种方式,需要把worker的协议改成http的. 我去试试.
ip 部分可以用 location.hostname 代替