繁体   English   中英

在现有页面上使用Socket.io和Node.js(使用Nginx)吗?

[英]Use Socket.io and Node.js on existing page (with nginx)?

我正在尝试使用实时API扩展现有网页(NGINX + PHP5 + MySQL),该API会提供一些其他数据(例如,页内聊天)。

经过一些独立的测试脚本等之后,实际上我已经遇到了麻烦,只是为了建立一个简单的聊天示例:Socket.io不想工作,显然是因为依赖关系。

我试图使用NodeJS / Socket.io来替代fdajax-我从没打算在nodejs上构建我的整个(已经存在)页面。 所以,我的主要问题是,如何“实现”这两个库,并使它们仍然有效(即使socket.io.js不是由nodejs交付的)

我当前的错误是在包含socket.io.jsReferenceError: require is not defined ReferenceError: io is not defined 显然,原因是require()函数可能无法正常工作,因为-不错,nodejs不能交付整个页面,而PHP可以(因此,我想缺少了全部require()的东西)。

有人知道我如何才能使socket.io正常工作,而没有让nodejs交付整个页面,而是仍然使用现有的NGINX + PHP设置吗?

我尝试了几件事,但找不到很好的提示。 基本上,目标是仅包含socket.io.js (和其他必需的东西),通过指定的端口(8080或任何其他端口)连接到nodejs Web服务器,然后编写一些代码。

谢谢您的帮助。

这是另一个答案/问题的完整示例 https://stackoverflow.com/a/14709236/1489655


您可以为websocket流量设置代理。

tcp {
    upstream websockets {
        ## node processes
        server 127.0.0.1:8001;
        server 127.0.0.1:8002;
        server 127.0.0.1:8003;
        server 127.0.0.1:8004; 

        check interval=3000 rise=2 fall=5 timeout=1000;
    }   

    server {
        listen 127.0.0.1:80;
        server_name _;

        tcp_nodelay on;
        proxy_pass websockets;
    }
}

来源: http//www.letseehere.com/reverse-proxy-web-sockets

这应该允许您通过以下方式连接到socket.io

var socket = new io.Socket('ws://localhost');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM