0

有人用 cocos2d js 和 deepstream io 吗?

我尝试使用 deepstream 客户端 js,但尝试通过网络(websocket)连接服务器时似乎失败:

这是亚行日志:

06-06 09:43:19.227:D/cocos2d-x 调试信息(26288):connectDeepStream [object Object] 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 fds

06-06 09:43:19.237: D/WebSocket.cpp(26288): 注意: mem: platform fd map: 4096 bytes

06-06 09:43:19.237:D/WebSocket.cpp(26288):注意:编译时支持 OpenSSL

06-06 09:43:19.247: D/WebSocket.cpp(26288): 注意: mem: per-conn:
376 bytes + protocol rx buf

06-06 09:43:19.247:D/WebSocket.cpp(26288):协议:ws,主机: ..*,端口:3512,路径:深流

06-06 09:43:19.247: D/WebSocket.cpp(26288): 注意: 创建 Vhost '默认' 端口 -1, 1 协议, IPv6 on

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 Object] 对象

06-06 09:43:19.282:D/cocos2d-x 调试信息(26288):[对象对象]

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 connectionError [object Object] 字符串

06-06 09:43:19.317:D/cocos2d-x 调试信息(26288):错误:字符串

06-06 09:43:19.317:D/cocos2d-x 调试信息(26288):[对象对象]

06-06 09:43:19.317:D/cocos2d-x 调试信息(26288):连接错误

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 的桥梁。谢谢大家。

4

1 回答 1

0

很难说这里有什么问题,但看起来 WebSocket API 可能不兼容。您可以尝试在 deepstream 错误处理程序中记录错误对象的内容吗?如果您可以发布一个小的代码示例,那也很棒。

于 2017-06-08T11:15:21.447 回答