lit*_*m84 5 javascript deployment node.js socket.io
我已经成功地用Node JS和Socket.io编写了一个非常简单的实时聊天.它还使用Express,Jade和Stylus - 我想进一步发展.
这里的当前代码在这里(这在本地工作):https://github.com/littlejim84/basic_node_socket
这一切都运行良好,并在我的本地计算机上按预期工作.运行Node应用程序并转到http:// localhost:9000 /使事情按预期工作.但是当我把它放在我的远程服务器上时,套接字没有连接.我已经将Ngnix设置为服务器我的Node应用程序,如下所示:
upstream basic_node_socket {
server 127.0.0.1:9000;
}
server {
listen 80;
server_name example.com;
location /basic_node_socket {
root /var/www/example.com/basic_node_socket;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://basic_node_socket/;
proxy_redirect off;
}
}
Run Code Online (Sandbox Code Playgroud)
有了这个,我可以转到网址,它将按预期服务器我的Node应用程序,但套接字只是不会连接.我假设这是因为现在在客户端,我正在收听端口9000,这可能已经没有任何相关性,现在它正以这种方式提供服务?
在我的客户端脚本中我有这个(它在本地工作):
socket = new io.Socket(null, {port: 9000});
Run Code Online (Sandbox Code Playgroud)
我不是Node的专家,我试图绕过它.任何人都可以帮助我在远程服务器上按预期工作吗?
任何帮助将不胜感激.
更新: 我看到这个链接似乎详细解释了我的问题:http://community.webfaction.com/questions/3448/using-websockets-with-a-nodejs-custom-app
...这很好,我知道我可能需要一个专用IP,所以我可以纯粹在端口80上运行Node,并让我的一个域名指向那个IP(或者我可以使用像Nodestar这样的东西).但我想把东西放在我自己的VPS上.这似乎很好,只要我有一个Node应用程序运行.但是,如果我想在新的专用IP地址上运行两个或三个Node JS应用程序呢?这是我不明白的一点.我见过Node JS的各种vhost类型设置,但我不确定如何干净利落地实现它.
归档时间: |
|
查看次数: |
1303 次 |
最近记录: |