【发布时间】:2017-06-06 02:57:36
【问题描述】:
有人用 cocos2d js 和 deepstream io 吗?
我尝试使用 deepstream 客户端 js,但尝试通过网络(websocket)连接服务器时似乎失败:
这是 adb 日志:
06-06 09:43:19.227:D/cocos2d-x 调试信息(26288):connectDeepStream [对象对象] PlayerActions.login.request@assets/src/modules/Actions/Player.js:22:13,
06-06 09:43:19.232: D/WebSocket.cpp(26288): WebSocket 线程启动, 辅助实例:0x97987760
06-06 09:43:19.237:D/WebSocket.cpp(26288):注意:初始日志记录 911级
06-06 09:43:19.237:D/WebSocket.cpp(26288):注意:Libwebsockets 版本:2.1.0 james@James-Chen.local-v3.4-139-gbdcf7f8
06-06 09:43:19.237:D/WebSocket.cpp(26288):注意:IPV6 编译在 并启用
06-06 09:43:19.237:D/WebSocket.cpp(26288):注意:不支持 libev 编译在
06-06 09:43:19.237:D/WebSocket.cpp(26288):注意:不支持 libuv 编译在
06-06 09:43:19.237:D/WebSocket.cpp(26288):注意:线程:每个 1 1024 帧
06-06 09:43:19.237: D/WebSocket.cpp(26288): 注意: mem: platform fd 地图:4096 字节
06-06 09:43:19.237: D/WebSocket.cpp(26288): 注意: 编译 OpenSSL 支持
06-06 09:43:19.247: D/WebSocket.cpp(26288): 注意: 内存: per-conn:
376 字节 + 协议 rx buf06-06 09:43:19.247:D/WebSocket.cpp(26288):协议:ws,主机: ...*,端口:3512,路径:deepstream
06-06 09:43:19.247:D/WebSocket.cpp(26288):注意:创建 Vhost 'default' 端口 -1、1 协议、IPv6 开启
06-06 09:43:19.252:D/WebSocket.cpp(26288):通知:lws_protocol_init
06-06 09:43:19.252: D/WebSocket.cpp(26288): WebSocket (0xae824ed0) 未处理的 websocket 事件:32
06-06 09:43:19.252: D/WebSocket.cpp(26288): WebSocket (0xae824ed0) 未处理的 websocket 事件:29
06-06 09:43:19.257: D/WebSocket.cpp(26288): WebSocket (0xae824ed0) 未处理的 websocket 事件:24
06-06 09:43:19.267: D/WebSocket.cpp(26288): WebSocket (0xae824ed0) onConnectionError,状态:0 ...
06-06 09:43:19.267: D/WebSocket.cpp(26288): WebSocket (0xae824ed0) onConnectionClosed,状态:2 ...
06-06 09:43:19.267: D/WebSocket.cpp(26288): onConnectionClosed, WebSocket (0xae824ed0) 正在被服务器关闭。
06-06 09:43:19.267: D/WebSocket.cpp(26288): WebSocket (0xae824ed0) onConnectionClosed 完成!
06-06 09:43:19.267: D/WebSocket.cpp(26288): WebSocket (0xae824ed0) 未处理的 websocket 事件:45
06-06 09:43:19.267: D/WebSocket.cpp(26288): WebSocket (0xae824ed0) 未处理的 websocket 事件:33
06-06 09:43:19.267: D/WebSocket.cpp(26288): WebSocket (0xae824ed0) onConnectionClosed,状态:3 ...
06-06 09:43:19.282: D/cocos2d-x 调试信息(26288): _onError [object 对象] 对象
06-06 09:43:19.282: D/cocos2d-x 调试信息(26288): [object Object]
06-06 09:43:19.282: D/cocos2d-x 调试信息(26288): {"type":"error"}
06-06 09:43:19.287: D/WebSocket.cpp(26288): 在析构函数中 WebSocket (0xae824ed0)
06-06 09:43:19.287: D/WebSocket.cpp(26288): 在加入 ws 线程之前
06-06 09:43:19.292:D/WebSocket.cpp(26288):注意: lws_context_destroy
06-06 09:43:19.292: D/WebSocket.cpp(26288): WebSocket 线程退出, 辅助实例:0x97987760
06-06 09:43:19.292: D/WebSocket.cpp(26288): 加入 ws 线程后
06-06 09:43:19.317:D/cocos2d-x 调试信息(26288):C 连接错误 [object 对象] 字符串
06-06 09:43:19.317:D/cocos2d-x 调试信息(26288):错误:字符串
06-06 09:43:19.317: D/cocos2d-x 调试信息(26288): [object Object]
06-06 09:43:19.317: D/cocos2d-x 调试信息(26288): connectionError
06-06 09:43:19.317:D/cocos2d-x 调试信息(26288):C
我试图记录错误的内容,但它只是 "{"type":"error"}" 。
代码就是这么简单。我只启动了一个深流服务器并尝试在android客户端(js cocos2d-js)上登录服务器
像这样:
this.client = deepstream(CCDefine.DeepStreamServer).login({username: arg.username, password: arg.password},function(success,data){
cc.log(success,data)
if(success){
cc.log('Deep stream connect success')
}else{
cc.log('Deep stream connect false')
}
})
我发现 cocos 使用没有 libuv 的 libwebsockets 而 deepstream 使用它。可以吗?我试图用 libuv for android 编译 libwebsockets 但我失败了。
现在我目前通过使用 deepstream java SDK 解决了这个问题,并建立了从 java 到 js 的桥梁。 谢谢大家。
【问题讨论】:
标签: android cocos2d-js deepstream.io cocos2d-x-3.x