我有一个已建立的网站,我想使聊天客户端。我想自己写这篇文章,只是为了好玩,同时也想了解一点node.js和express。现在我有一个基于jQuery/PHP/MySQL和ajax轮询的聊天系统。它很慢,而且我每5秒才轮询一次,所以它看起来也很慢。
我可以用node.js编写聊天记录,但我的问题是:如何在我的老学校页面中包含我的聊天记录。我希望它是一个框,它是在我所有页面的底部角落。我不关心css,只关心如何集成它。聊天是否应该存在于它自己的域(chat.example.com)中,并且只允许跨站点访问?
发布于 2014-07-29 05:20:41
以下是对访问控制标头的引用。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
如果您的PHP应用程序正在运行,请在nginx之后运行。您可以在nginx中设置一个路由,将这些请求转发到聊天服务器。
下面是一个示例:
upstream app_chat {
server 127.0.0.1:8080;
}
server {
listen 0.0.0.0:80;
server_name www.mydomain.com mydomain;
location /chat {
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://app_chat/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}因此,从您的客户端js
var sock = io.connect('ws://mydomain/chat');
sock.on('chat', function (msg) {
console.log('msg', msg);
});发布于 2014-07-29 05:21:45
可以,停那儿吧。我不知道你的应用有多复杂。但是,在不同的端口上运行节点服务器就可以了。
假设您的PHP应用程序在端口80上运行。现在,运行处理8080上聊天系统的node.js服务器。然后,在您的PHP页面中包含一个JS文件(chat.js)。
chat.js
var connection = io.connect('YOUR_NODE_SERVER_URL'); //like http://localhost:8080
/*
your code
*/就这样。
https://stackoverflow.com/questions/25004316
复制相似问题