这可能是一个微不足道的问题,但我想更多地了解其他更聪明有效的解决方法.
我有一个项目列表,每个项目都有一个a值为二进制的属性.
a == 0,那么我设置一个单独的变量b = 0.a == 1,那么我就设置了b = 1.a == 0,并a == 1在列表中,然后我设置
b = 2.我可以使用一个集合来跟踪a值的类型,这样如果在遍历列表后集合中有两个项目,那么我可以设置b = 2,而如果集合中只有一个项目我只是检索项目(0或1)并使用它来设置b.
有更好的方法吗?
使用最新的Chrome浏览器,我正在尝试使用sockjs客户端与后端服务器进行通信haproxy.在我的本地主机(不在haproxy中间),这工作正常 - 客户端可以使用websocket协议连接,发送和接收消息.例如:
conn.onopen = function() {
if (conn.readyState === SockJS.OPEN) {
conn.send("hello server");
console.log("msg sent");
}
};
Run Code Online (Sandbox Code Playgroud)
一旦我将它部署在服务器上HAProxy,就会发生奇怪的事情,sockjs认为连接是打开的(如同在conn.readyState === SockJS.OPEN控制台日志中出现'msg sent'),但是,websocket握手只是挂起而服务器从未收到过msg.以下是我在haproxy日志中看到的内容:
Oct 23 09:08:25 localhost.localdomain haproxy[14121]: 129.xx.xxx.105:55000 [23/Oct/2012:09:08:24.459] public www/content 777/0/0/1/778 200 375 - - ---- 3/3/0/1/0 0/0 "GET /sockjs/info HTTP/1.1"
Oct 23 09:10:54 localhost.localdomain haproxy[14121]: 129.xx.xxx.105:55015 [23/Oct/2012:09:08:25.398] public www/content 0/0/0/1/149017 101 147 - - CD-- 4/4/0/0/0 0/0 "GET /sockjs/478/kyi342s8/websocket HTTP/1.1" …Run Code Online (Sandbox Code Playgroud)