static JSBool js_cocos2dx_extension_WebSocket_get_readyState(JSContext *cx, JSHandleObject obj, JSHandleId id, JSMutableHandleValue vp) { JSObject* jsobj = obj.get(); js_proxy_t *proxy = jsb_get_js_proxy(jsobj); WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL); JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object"); if (cobj) { vp.set(INT_TO_JSVAL((int)cobj->getReadyState())); return JS_TRUE; } else { JS_ReportError(cx, "Error: WebSocket instance is invalid."); return JS_FALSE; } }
static bool js_cocos2dx_extension_WebSocket_get_readyState(JSContext *cx, uint32_t argc, jsval *vp) { JS::CallArgs args = JS::CallArgsFromVp(argc, vp); JS::RootedObject jsobj(cx, args.thisv().toObjectOrNull()); js_proxy_t *proxy = jsb_get_js_proxy(jsobj); WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL); JSB_PRECONDITION2( cobj, cx, false, "Invalid Native Object"); if (cobj) { args.rval().set(INT_TO_JSVAL((int)cobj->getReadyState())); return true; } else { JS_ReportError(cx, "Error: WebSocket instance is invalid."); return false; } }
void SIOClientImpl::disconnect() { if(_ws->getReadyState() == WebSocket::State::OPEN) { std::string s = "0::"; _ws->send(s); log("Disconnect sent"); _ws->close(); } Director::getInstance()->getScheduler()->unscheduleAllForTarget(this); _connected = false; SocketIO::getInstance()->removeSocket(_uri); }