扩展socket.io应用程序的方法有哪些?我看到以下问题,我不明白如何解决:
我很难想象它应该如何工作 - 也许是所有必要信息的共享变体商店,例如redis - 这是一种可能性吗?
编辑:我发现这篇文章:http://www.ranu.com.ar/2011/11/redisstore-and-rooms-with-socketio.html
在此基础上,我做了以下几点:
var pub = redis.createClient();
var sub = redis.createClient();
var store = redis.createClient();
pub.auth("pass");
sub.auth("pass");
store.auth("pass");
io.configure( function(){
io.enable('browser client minification'); // send minified client
io.enable('browser client etag'); // apply etag caching logic based on version number
io.enable('browser client gzip'); // gzip the file
io.set('log level', 1); // reduce logging
io.set('transports', [ // enable all transports (optional if you want flashsocket)
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, …Run Code Online (Sandbox Code Playgroud) 我有一台服务器配置为通过Ngnix前端在多个域上托管多个node.js + express应用程序.一切都很好,除了从快速路线调用重定向时:
res.redirect('/admin');
Run Code Online (Sandbox Code Playgroud)
然后客户端浏览器重定向到http://0.0.0.0:8090
似乎问题一直是来自express的重定向头的问题,但是为了防止相关,这里是相关域的nginx.conf文件:
server {
listen 0.0.0.0:80;
server_name *.example.com;
access_log /var/log/nginx_example_access.log;
error_log /var/log/nginx_example_error.log debug;
# proxy to node
location / {
proxy_pass http://0.0.0.0:8090/;
proxy_redirect off;
proxy_set_header Host $proxy_host;
proxy_max_temp_file_size 0;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
Run Code Online (Sandbox Code Playgroud) 假设有一个SQL表 Fruit
id | name
--- ------
1 | 'apples'
2 | 'pears'
3 | 'kiwi'
4 | 'bananas, peaches and plumbs'
Run Code Online (Sandbox Code Playgroud)
鉴于以下查询
<cfquery name="qAllFruit" datasource="#DSN#">
SELECT name FROM Fruit
</cfquery>
<cfquery name="qLeftoverFruit" datasource="#DSN#">
SELECT name FROM Fruit
WHERE name NOT IN (<cfqueryparam CF_SQL_TYPE="CF_SQL_VARCHAR"
value="#ValueList(qAllFruit.name)#"
list="yes" />)
</cfquery>
Run Code Online (Sandbox Code Playgroud)
然后qLeftoverFruit将错误地返回1行:bananas, peaches and plumbs因为扩展cfqueryparam列表被错误地解释:
WHERE name NOT IN ('apples','pears','kiwi','bananas','peaches and plumbs')
Run Code Online (Sandbox Code Playgroud)
有没有办法在仍然使用cfqueryparam标签时纠正这个问题ValueList?
更新以下是您可以用来重现此问题的要点:http://gist.github.com/a642878c96b82b21b52c
node.js ×2
cfquery ×1
cfqueryparam ×1
coldfusion ×1
coldfusion-8 ×1
express ×1
nginx ×1
socket.io ×1