Ben*_*Ben 9 android node.js socket.io cordova
我正在尝试将一个简单的socket.io聊天应用程序捆绑到本机应用程序中,以便在Android 2.2及更高版本上使用phonegap运行.
我有一个运行socket.io的简单服务器,当它在Web浏览器中运行时,它成功地与socket.io客户端通信.
需要注意的是,因为WebSockets的支持的arent在Android 2.2则默认回XHR轮询,通过Web浏览器在Android 2.2的连接时,从服务器消息样本
[root@webnode-2 nodechat]# node server.js
info - socket.io started
debug - client authorized
info - handshake authorized 6036976111002307981
debug - setting request GET /socket.io/1/xhr-polling/6036976111002307981?t=1332184313758
debug - setting poll timeout
debug - client authorized for
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client 6036976111002307981
6036976111002307981
debug - setting request GET /socket.io/1/xhr-polling/6036976111002307981?t=1332184313839
debug - setting poll timeout
debug - clearing poll timeout
debug - xhr-polling writing 5:::{"name":"message","args":["Welcome stranger!"]}
debug - set close timeout for client 6036976111002307981
debug - discarding transport
debug - cleared close timeout for client 6036976111002307981
debug - setting request GET /socket.io/1/xhr-polling/6036976111002307981?t=1332184313928
debug - setting poll timeout
debug - discarding transport
debug - cleared close timeout for client 6036976111002307981
debug - clearing poll timeout
debug - xhr-polling writing 8::
debug - set close timeout for client 6036976111002307981
debug - xhr-polling closed due to exceeded duration
debug - setting request GET /socket.io/1/xhr-polling/6036976111002307981?t=1332184334139
debug - setting poll timeout
debug - discarding transport
debug - cleared close timeout for client 6036976111002307981
debug - xhr-polling received data packet 5:::{"name":"connect_friends","args":[{"user_id":"2","friends_list":[1,2,3,4,5,6,7,8,9,10]}]}
REGISTER USER
{ user_id: '2', friends_list: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] } 10 assigned user_id: 2 to socket 6036976111002307981
03-19 11:38:46.847: I/PhoneGapLog(18469): Found log level DEBUG 03-19 11:38:46.847: I/PhoneGapLog(18469): Changing log level to DEBUG(3) 03-19 11:38:46.847: D/DroidGap(18469): DroidGap.onCreate() 03-19 11:38:46.847: D/DroidGap(18469): DroidGap.loadUrl(file:///android_asset/www/index.html) 03-19 11:38:46.847: D/DroidGap(18469): DroidGap: url=file:///android_asset/www/index.html baseUrl=file:///android_asset/www/ 03-19 11:38:46.847: D/DroidGap(18469): DroidGap.init() 03-19 11:38:46.941: D/dalvikvm(18469): GC_FOR_MALLOC freed 6234 objects / 618952 bytes in 68ms 03-19 11:38:46.968: D/SoftKeyboardDetect(18469): Ignore this event 03-19 11:38:47.007: D/SoftKeyboardDetect(18469): Ignore this event 03-19 11:38:47.058: D/SoftKeyboardDetect(18469): Ignore this event03-19 11:38:47.241: D/PhoneGapLog(18469): Flash Player >= 10.0.0 is required. 03-19 11:38:47.241: D/PhoneGapLog(18469): file:///android_asset/www/js/socket.io/socket.io.js: Line 2622 : Flash Player >= 10.0.0 is required. 03-19 11:38:47.241: E/Web Console(18469): Flash Player >= 10.0.0 is required. at file:///android_asset/www/js/socket.io/socket.io.js:2622
03-19 11:38:47.796: D/PhoneGapLog(18469): Receiving Welcome stranger! 03-19 11:38:47.796: D/PhoneGapLog(18469): file:///android_asset/www/index.html: Line 8 : Receiving Welcome stranger! 03-19 11:38:47.796: I/Web Console(18469): Receiving Welcome stranger! at file:///android_asset/www/index.html:8 03-19 11:39:07.007: E/DroidGap(18469): DroidGap: TIMEOUT ERROR! - calling webViewClient 03-19 11:39:07.007: D/Cordova(18469): DroidGap: GapViewClient.onReceivedError: Error code=-6 Description=The connection to the server was unsuccessful. URL=file:///android_asset/www/index.html 03-19 11:39:07.167: D/SoftKeyboardDetect(18469): Ignore this event 03-19 11:39:16.323: D/dalvikvm(18469): GC_EXPLICIT freed 6130 objects / 505920 bytes in 156ms
服务器上的事件日志是
[root@webnode-2 nodechat]# node server.js
info - socket.io started
debug - client authorized
info - handshake authorized 1009349893764580916
debug - setting request GET /socket.io/1/xhr-polling/1009349893764580916?t=1332182327502
debug - setting poll timeout
debug - client authorized for
debug - clearing poll timeout
debug - xhr-polling writing 1::
debug - set close timeout for client 1009349893764580916
debug - setting request GET /socket.io/1/xhr-polling/1009349893764580916?t=1332182327602
debug - setting poll timeout
debug - clearing poll timeout
debug - xhr-polling writing 5:::{"name":"message","args":["Welcome stranger!"]}
debug - set close timeout for client 1009349893764580916
debug - discarding transport
debug - cleared close timeout for client 1009349893764580916
debug - setting request GET /socket.io/1/xhr-polling/1009349893764580916?t=1332182327802
debug - setting poll timeout
debug - discarding transport
debug - cleared close timeout for client 1009349893764580916
debug - clearing poll timeout
info - transport end
debug - set close timeout for client 1009349893764580916
debug - cleared close timeout for client 1009349893764580916
DISCONNECTED EVENT
debug - discarding transport debug - client authorized info - handshake authorized 2044675477593417130 debug - setting request GET /socket.io/1/xhr-polling/2044675477593417130?t=1332182347938 debug - setting poll timeout debug - client authorized for debug - clearing poll timeout debug - xhr-polling writing 1:: debug - set close timeout for client 2044675477593417130 debug - setting request GET /socket.io/1/xhr-polling/2044675477593417130?t=1332182348112 debug - setting poll timeout debug - clearing poll timeout debug - xhr-polling writing 5:::{"name":"message","args":["Welcome stranger!"]} debug - set close timeout for client 2044675477593417130 debug - discarding transport debug - cleared close timeout for client 2044675477593417130 debug - setting request GET /socket.io/1/xhr-polling/2044675477593417130?t=1332182348308 debug - setting poll timeout debug - discarding transport debug - cleared close timeout for client 2044675477593417130 debug - clearing poll timeout info - transport end debug - set close timeout for client 2044675477593417130 debug - cleared close timeout for client 2044675477593417130
DISCONNECTED EVENT
debug - discarding transport
[root@webnode-2 nodechat]# node server.js info - socket.io started debug - destroying non-socket.io upgrade
我认为这是因为尝试使用websockets连接到socket.io服务器而不使用socket.io客户端js.我只用node.js服务器测试它,它工作
您将需要查看您的 HTTP 标头。我的猜测是客户端要么没有发送保持活动状态,要么被服务器忽略。在客户端发送的 XHR 请求中查找“Connection: keep-alive”。还要查看服务器端的响应。另一个指标可能是发送的http版本。1.0将意味着连接将在请求后关闭。
| 归档时间: |
|
| 查看次数: |
5460 次 |
| 最近记录: |