[英]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.js
时ReferenceError: 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.