0

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

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

我试图使用 NodeJS/Socket.io作为 fdajax 的替代品——我从未打算在 nodejs 上构建我的整个(已经存在的)页面。所以,我的主要问题是,我怎样才能“实现”这两个库,并且仍然让它们工作(即使socket.io.js不是由 提供nodejs

我当前的错误是ReferenceError: require is not definedReferenceError: io is not defined当包括socket.io.js. 显然,原因是该函数require()可能无法正常工作,因为 - 好吧,nodejs 没有提供整个页面,但 PHP 提供了(所以,我猜,整个 require() 的东西都不见了)。

有人知道我如何开始socket.io工作,而没有让 nodejs 提供整个页面,而是仍然使用现有的 NGINX+PHP 设置吗?

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

谢谢您的帮助。

4

1 回答 1

0

这是来自另一个答案/问题的完整示例 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');
于 2013-04-17T19:05:34.550 回答