workerman与apache配合使用遇到的问题

edgexie

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呢?

3938 2 0
2个回答

walkor

因为你在宿主机访问127.0.0.1这个ip访问不到你的虚拟主机,你可以写虚拟主机的ip试下

  • edgexie 2016-08-26

    换了虚拟主机的ip的确可以了。谢谢Walker。 只是我现在想用花生壳把worker服务映射到外网。花生壳可以把虚拟机器地址(192.168.4.250:2345)映射, 映射后,外网访问的地址为http ://xxxxxx.net. 不知道该怎么写js协议里的地址呢?是不是用花生壳映射这样做不行?

  • edgexie 2016-08-26

    想把worker服务开到外网, 应该怎么做.有相应的教程吗?

  • edgexie 2016-08-26

    感觉是不是如果想用花生壳这种方式,需要把worker的协议改成http的. 我去试试.

pader

ip 部分可以用 location.hostname 代替

  • 暂无评论
年代过于久远,无法发表回答
🔝