Unexpected response code: 502 error when using socket.io with AppFog
当用户打开http://sync.aws.af.cm/时,将显示Google Chrome JavaScript控制台(几秒钟内):
1 | Unexpected response code: 502 error |
即使用户刷新页面,应用程序也应记住文本区域的内容。该应用程序在本地运行,但是当我将其上传到AppFog时无法运行,并且我怀疑问题是502错误。
您是否知道在这种情况下可能导致此错误的原因?
我尝试过的
我尝试按照此处所述将客户端中的
我也尝试在Heroku而不是AppFog上提供该应用程序,但是在那种情况下,即使我指定了socket.io 0.9.6版,我仍然遇到这里描述的问题。
我也查看了以下问题,但到目前为止,这些评论似乎对我没有帮助。
socket.io在连接上创建502错误的网关/?? websocket无效
Socket.IO node.js websocket连接无效的端口8081
socket.io与node.js的运行不正常
相关服务器代码
这是相关的服务器代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var server = http.createServer(function (req, res) { ... }); var io = require('socket.io').listen(server); // Define events that can be triggered by the client io.sockets.on('connection', function (socket) { socket.on('setServerVariable', function (value) { ... }); ... }); server.listen(process.env.VCAPP_APP_PORT || 3000); |
相关客户代码
1 2 3 4 5 6 7 8 9 10 | <script src="/socket.io/socket.io.js"> window.onload = function () { ... var socket = io.connect(window.location.hostname); socket.emit('getServerVariable'); ... }; ... |
服务器日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | $ af logs sync ====> /logs/stdout.log <==== info: socket.io started debug: served static content /socket.io.js debug: client authorized info: handshake authorized veNnUVtoDTIz-oudG7Pa debug: setting request GET /socket.io/1/websocket/veNnUVtoDTIz-oudG7Pa debug: set heartbeat interval for client veNnUVtoDTIz-oudG7Pa warn: websocket connection invalid info: transport end (undefined) debug: set close timeout for client veNnUVtoDTIz-oudG7Pa debug: cleared close timeout for client veNnUVtoDTIz-oudG7Pa debug: cleared heartbeat interval for client veNnUVtoDTIz-oudG7Pa debug: served static content /socket.io.js debug: client authorized info: handshake authorized 6AKyhROUNjqujk_uG7Pb debug: setting request GET /socket.io/1/websocket/6AKyhROUNjqujk_uG7Pb debug: set heartbeat interval for client 6AKyhROUNjqujk_uG7Pb warn: websocket connection invalid info: transport end (undefined) debug: set close timeout for client 6AKyhROUNjqujk_uG7Pb debug: cleared close timeout for client 6AKyhROUNjqujk_uG7Pb debug: cleared heartbeat interval for client 6AKyhROUNjqujk_uG7Pb debug: setting request GET /socket.io/1/xhr-polling/6AKyhROUNjqujk_uG7Pb?t=1348504130465 debug: setting poll timeout debug: client authorized for debug: clearing poll timeout debug: xhr-polling writing 1:: debug: set close timeout for client 6AKyhROUNjqujk_uG7Pb debug: setting request GET /socket.io/1/xhr-polling/6AKyhROUNjqujk_uG7Pb?t=1348504130724 debug: setting poll timeout debug: discarding transport debug: cleared close timeout for client 6AKyhROUNjqujk_uG7Pb debug: xhr-polling received data packet 5:::{"name":"getServerVariable"} debug: clearing poll timeout debug: xhr-polling writing 5:::{"name":"printLog"} debug: set close timeout for client 6AKyhROUNjqujk_uG7Pb server.js: getServerVariable: debug: setting request GET /socket.io/1/xhr-polling/6AKyhROUNjqujk_uG7Pb?t=1348504130980 debug: setting poll timeout debug: clearing poll timeout debug: xhr-polling writing ?????????23?????????5:::{"name":"printLog"}?????????39?????????5:::{"name":"setItemValue","args":[""]}?????????23?????????5:::{"name":"printLog"} debug: set close timeout for client 6AKyhROUNjqujk_uG7Pb debug: discarding transport debug: cleared close timeout for client 6AKyhROUNjqujk_uG7Pb debug: setting request GET /socket.io/1/xhr-polling/6AKyhROUNjqujk_uG7Pb?t=1348504131261 debug: setting poll timeout debug: discarding transport debug: cleared close timeout for client 6AKyhROUNjqujk_uG7Pb debug: clearing poll timeout debug: xhr-polling writing 8:: debug: set close timeout for client 6AKyhROUNjqujk_uG7Pb debug: xhr-polling closed due to exceeded duration debug: setting request GET /socket.io/1/xhr-polling/6AKyhROUNjqujk_uG7Pb?t=1348504151659 debug: setting poll timeout debug: discarding transport debug: cleared close timeout for client 6AKyhROUNjqujk_uG7Pb |
AppFog还不支持websocket。在最近收购Nodester之后,他们宣布它将在几个月后上市。
通过添加
我在使用CloudFlare时遇到了同样的