本文整理汇总了C++中WebSocket::close方法的典型用法代码示例。如果您正苦于以下问题:C++ WebSocket::close方法的具体用法?C++ WebSocket::close怎么用?C++ WebSocket::close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WebSocket
的用法示例。
在下文中一共展示了WebSocket::close方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: close
JSValue JSWebSocket::close(ExecState* exec)
{
// FIXME: We should implement [Clamp] for IDL binding code generator, and
// remove this custom method.
WebSocket* webSocket = static_cast<WebSocket*>(impl());
size_t argumentCount = exec->argumentCount();
int code = WebSocketChannel::CloseEventCodeNotSpecified;
String reason = "";
if (argumentCount >= 1) {
JSValue v = exec->argument(0);
double x = v.toNumber(exec);
double maxValue = static_cast<double>(std::numeric_limits<uint16_t>::max());
double minValue = static_cast<double>(std::numeric_limits<uint16_t>::min());
if (isnan(x))
x = 0.0;
else
x = clampTo(x, minValue, maxValue);
code = clampToInteger(x);
if (argumentCount >= 2) {
reason = ustringToString(exec->argument(1).toString(exec)->value(exec));
if (exec->hadException()) {
setDOMException(exec, SYNTAX_ERR);
return jsUndefined();
}
}
}
ExceptionCode ec = 0;
webSocket->close(code, reason, ec);
setDOMException(exec, ec);
return jsUndefined();
}
示例2: throwError
v8::Handle<v8::Value> V8WebSocket::closeCallback(const v8::Arguments& args)
{
// FIXME: We should implement [Clamp] for IDL binding code generator, and
// remove this custom method.
WebSocket* webSocket = toNative(args.Holder());
int argumentCount = args.Length();
int code = WebSocketChannel::CloseEventCodeNotSpecified;
String reason = "";
if (argumentCount >= 1) {
double x = args[0]->NumberValue();
double maxValue = static_cast<double>(std::numeric_limits<uint16_t>::max());
double minValue = static_cast<double>(std::numeric_limits<uint16_t>::min());
if (isnan(x))
x = 0.0;
else
x = clampTo(x, minValue, maxValue);
code = clampToInteger(x);
if (argumentCount >= 2) {
v8::TryCatch tryCatch;
v8::Handle<v8::String> reasonValue = args[1]->ToString();
if (tryCatch.HasCaught())
return throwError(tryCatch.Exception());
reason = toWebCoreString(reasonValue);
}
}
ExceptionCode ec = 0;
webSocket->close(code, reason, ec);
if (ec)
return throwError(ec);
return v8::Undefined();
}
示例3: jsWebSocketPrototypeFunctionClose
JSValue JSC_HOST_CALL jsWebSocketPrototypeFunctionClose(ExecState* exec, JSObject*, JSValue thisValue, const ArgList& args)
{
UNUSED_PARAM(args);
if (!thisValue.inherits(&JSWebSocket::s_info))
return throwError(exec, TypeError);
JSWebSocket* castedThisObj = static_cast<JSWebSocket*>(asObject(thisValue));
WebSocket* imp = static_cast<WebSocket*>(castedThisObj->impl());
imp->close();
return jsUndefined();
}
示例4: jsWebSocketPrototypeFunctionClose
EncodedJSValue JSC_HOST_CALL jsWebSocketPrototypeFunctionClose(ExecState* exec)
{
JSValue thisValue = exec->hostThisValue();
if (!thisValue.inherits(&JSWebSocket::s_info))
return throwVMTypeError(exec);
JSWebSocket* castedThis = static_cast<JSWebSocket*>(asObject(thisValue));
WebSocket* imp = static_cast<WebSocket*>(castedThis->impl());
imp->close();
return JSValue::encode(jsUndefined());
}
示例5: js_cocos2dx_extension_WebSocket_close
JSBool js_cocos2dx_extension_WebSocket_close(JSContext *cx, uint32_t argc, jsval *vp){
JSObject *obj = JS_THIS_OBJECT(cx, vp);
js_proxy_t *proxy = jsb_get_js_proxy(obj);
WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL);
JSB_PRECONDITION2( cobj, cx, JS_FALSE, "Invalid Native Object");
if(argc == 0){
cobj->close();
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
}
JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
return JS_FALSE;
}
示例6: js_cocos2dx_extension_WebSocket_close
bool js_cocos2dx_extension_WebSocket_close(JSContext *cx, uint32_t argc, jsval *vp){
JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
JS::RootedObject obj(cx, args.thisv().toObjectOrNull());
js_proxy_t *proxy = jsb_get_js_proxy(obj);
WebSocket* cobj = (WebSocket *)(proxy ? proxy->ptr : NULL);
JSB_PRECONDITION2( cobj, cx, false, "Invalid Native Object");
if(argc == 0){
cobj->close();
args.rval().setUndefined();
return true;
}
JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
return false;
}
示例7: disconnect
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);
}
示例8: lua_close
/**
* @author John M. Harris, Jr.
* @internal
*/
int WebSocket::lua_close(lua_State* L){
WebSocket* LuaWebSocket = checkWebSocket(L, 1);
if(LuaWebSocket){
if(LuaWebSocket->m_webSocket){
if(LuaWebSocket->m_webSocket->getState() == QAbstractSocket::ConnectedState){
ob_enum::LuaEnumItem* val = ob_enum::checkEnumItem(L, 2, ob_enum::LuaCloseCode);
ob_enum::CloseCode cc = ob_enum::CloseCode::Normal;
if(val){
cc = (ob_enum::CloseCode)val->value;
}
QString reason;
if(lua_isstring(L, 3)){
reason = QString(lua_tostring(L, 3));
}
LuaWebSocket->close(cc, reason);
return 0;
}
}
luaL_error(L, "WebSocket is already closed.");
}
return 0;
}