当前位置: 首页>>代码示例>>C++>>正文


C++ WebSocket::send方法代码示例

本文整理汇总了C++中WebSocket::send方法的典型用法代码示例。如果您正苦于以下问题:C++ WebSocket::send方法的具体用法?C++ WebSocket::send怎么用?C++ WebSocket::send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WebSocket的用法示例。


在下文中一共展示了WebSocket::send方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: throwError

v8::Handle<v8::Value> V8WebSocket::sendCallback(const v8::Arguments& args)
{
    INC_STATS("DOM.WebSocket.send()");

    if (!args.Length())
        return throwError("Not enough arguments", V8Proxy::SyntaxError);

    WebSocket* webSocket = V8WebSocket::toNative(args.Holder());
    v8::Handle<v8::Value> message = args[0];
    ExceptionCode ec = 0;
    bool result;
    if (V8ArrayBuffer::HasInstance(message)) {
        ArrayBuffer* arrayBuffer = V8ArrayBuffer::toNative(v8::Handle<v8::Object>::Cast(message));
        ASSERT(arrayBuffer);
        result = webSocket->send(arrayBuffer, ec);
    } else if (V8Blob::HasInstance(message)) {
        Blob* blob = V8Blob::toNative(v8::Handle<v8::Object>::Cast(message));
        ASSERT(blob);
        result = webSocket->send(blob, ec);
    } else {
        v8::TryCatch tryCatch;
        v8::Handle<v8::String> stringMessage = message->ToString();
        if (tryCatch.HasCaught())
            return throwError(tryCatch.Exception());
        result = webSocket->send(toWebCoreString(stringMessage), ec);
    }
    if (ec)
        return throwError(ec);

    return v8Boolean(result);
}
开发者ID:1833183060,项目名称:wke,代码行数:31,代码来源:V8WebSocketCustom.cpp

示例2: js_cocos2dx_extension_WebSocket_send

bool js_cocos2dx_extension_WebSocket_send(JSContext *cx, uint32_t argc, jsval *vp)
{
    JS::CallArgs argv = JS::CallArgsFromVp(argc, vp);
    JS::RootedObject obj(cx, argv.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 == 1)
    {
        if (argv[0].isString())
        {
            ssize_t len = JS_GetStringLength(argv[0].toString());
            std::string data;
            jsval_to_std_string(cx, argv[0], &data);

            if (data.empty() && len > 0)
            {
                CCLOGWARN("Text message to send is empty, but its length is greater than 0!");
                //FIXME: Note that this text message contains '0x00' prefix, so its length calcuted by strlen is 0.
                // we need to fix that if there is '0x00' in text message,
                // since javascript language could support '0x00' inserted at the beginning or the middle of text message
            }

            cobj->send(data);
        }
        else if (argv[0].isObject())
        {
            uint8_t *bufdata = NULL;
            uint32_t len = 0;

            JS::RootedObject jsobj(cx, argv[0].toObjectOrNull());
            if (JS_IsArrayBufferObject(jsobj))
            {
                bufdata = JS_GetArrayBufferData(jsobj);
                len = JS_GetArrayBufferByteLength(jsobj);
            }
            else if (JS_IsArrayBufferViewObject(jsobj))
            {
                bufdata = (uint8_t*)JS_GetArrayBufferViewData(jsobj);
                len = JS_GetArrayBufferViewByteLength(jsobj);
            }

            cobj->send(bufdata, len);
        }
        else
        {
            JS_ReportError(cx, "data type to be sent is unsupported.");
            return false;
        }

        argv.rval().setUndefined();

        return true;
    }
    JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
    return false;
}
开发者ID:ktjooho,项目名称:machine-learning,代码行数:58,代码来源:jsb_websocket.cpp

示例3: js_cocos2dx_extension_WebSocket_send

JSBool js_cocos2dx_extension_WebSocket_send(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, 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 == 1){
        do
        {
            if (JSVAL_IS_STRING(argv[0]))
            {
                std::string data;
                jsval_to_std_string(cx, argv[0], &data);
                cobj->send(data);
                break;
            }

            if (argv[0].isObject())
            {
                uint8_t *bufdata = NULL;
                uint32_t len = 0;
                
                JSObject* jsobj = JSVAL_TO_OBJECT(argv[0]);
                if (JS_IsArrayBufferObject(jsobj))
                {
                    bufdata = JS_GetArrayBufferData(jsobj);
                    len = JS_GetArrayBufferByteLength(jsobj);
                }
                else if (JS_IsArrayBufferViewObject(jsobj))
                {
                    bufdata = (uint8_t*)JS_GetArrayBufferViewData(jsobj);
                    len = JS_GetArrayBufferViewByteLength(jsobj);
                }
                
                if (bufdata && len > 0)
                {
                    cobj->send(bufdata, len);
                    break;
                }
            }
            
            JS_ReportError(cx, "data type to be sent is unsupported.");

        } while (0);
        
		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_TRUE;
}
开发者ID:Ben-Cortina,项目名称:GameBox,代码行数:54,代码来源:jsb_websocket.cpp

示例4: js_cocos2dx_extension_WebSocket_send

bool js_cocos2dx_extension_WebSocket_send(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 == 1){
        do
        {
            if (args.get(0).isString())
            {
                std::string data;
                jsval_to_std_string(cx, args.get(0), &data);
                cobj->send(data);
                break;
            }

            if (args.get(0).isObject())
            {
                uint8_t *bufdata = NULL;
                uint32_t len = 0;
                
                JSObject* jsobj = args.get(0).toObjectOrNull();
                if (JS_IsArrayBufferObject(jsobj))
                {
                    bufdata = JS_GetArrayBufferData(jsobj);
                    len = JS_GetArrayBufferByteLength(jsobj);
                }
                else if (JS_IsArrayBufferViewObject(jsobj))
                {
                    bufdata = (uint8_t*)JS_GetArrayBufferViewData(jsobj);
                    len = JS_GetArrayBufferViewByteLength(jsobj);
                }
                
                if (bufdata && len > 0)
                {
                    cobj->send(bufdata, len);
                    break;
                }
            }
            
            JS_ReportError(cx, "data type to be sent is unsupported.");

        } while (0);
        
        args.rval().setUndefined();

        return true;
    }
    JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
    return true;
}
开发者ID:1414648814,项目名称:AStar-Cocos2dx,代码行数:54,代码来源:jsb_websocket.cpp

示例5: processBinaryMessage

//! [processBinaryMessage]
void EchoServer::processBinaryMessage(QByteArray message)
{
	WebSocket *pClient = qobject_cast<WebSocket *>(sender());
	if (pClient != 0)
	{
		pClient->send(message);
	}
}
开发者ID:antoshib,项目名称:QWebSockets,代码行数:9,代码来源:echoserver.cpp

示例6: processMessage

//! [processMessage]
void EchoServer::processMessage(QString message)
{
	WebSocket *pClient = qobject_cast<WebSocket *>(sender());
	if (pClient != 0)
	{
		pClient->send(message);
	}
}
开发者ID:antoshib,项目名称:QWebSockets,代码行数:9,代码来源:echoserver.cpp

示例7: heartbeat

void SIOClientImpl::heartbeat(float dt)
{
	std::string s = "2::";

	_ws->send(s);

	log("Heartbeat sent");
}
开发者ID:Abioy,项目名称:OpenBird,代码行数:8,代码来源:SocketIO.cpp

示例8: connectToEndpoint

void SIOClientImpl::connectToEndpoint(const std::string& endpoint)
{
	std::string path = endpoint == "/" ? "" : endpoint;

	std::string s = "1::" + path;

	_ws->send(s);
}
开发者ID:Abioy,项目名称:OpenBird,代码行数:8,代码来源:SocketIO.cpp

示例9: lua_send

	/**
	 * @author John M. Harris, Jr.
	 * @internal
	 */
	int WebSocket::lua_send(lua_State* L){
		WebSocket* LuaWebSocket = checkWebSocket(L, 1);
		if(LuaWebSocket != NULL){
			const char* msg = luaL_checkstring(L, 2);
			LuaWebSocket->send(msg);
		}
		return 0;
	}
开发者ID:RobloxLabs,项目名称:OpenBlox,代码行数:12,代码来源:WebSocket.cpp

示例10: webSocketsProcessMessage

void InterfaceHttp::webSocketsProcessMessage(const QString &message) {
    WebSocket *webSocket = qobject_cast<WebSocket *>(sender());
    if(webSocket) {
        QStringList commandItems = message.split(COMMAND_END, QString::SkipEmptyParts);;
        QString response;
        foreach(const QString & command, commandItems)
            response += MessageManager::incomingMessage(MessageIncomming("http", webSocket->peerAddress().toString(), webSocket->peerPort(), "", command, command.split(" ", QString::SkipEmptyParts)), true, (command != "goto"));
        if(!response.isEmpty())
            webSocket->send(response);
    }
}
开发者ID:kchrs,项目名称:IanniX,代码行数:11,代码来源:interfacehttp.cpp

示例11: emit

void SIOClientImpl::emit(std::string endpoint, std::string eventname, std::string args)
{
	std::stringstream pre;

	std::string path = endpoint == "/" ? "" : endpoint;
	
	pre << "5::" << path << ":{\"name\":\"" << eventname << "\",\"args\":" << args << "}";

	std::string msg = pre.str();

	log("emitting event with data: %s", msg.c_str());

	_ws->send(msg);
}
开发者ID:Abioy,项目名称:OpenBird,代码行数:14,代码来源:SocketIO.cpp

示例12: send

void SIOClientImpl::send(std::string endpoint, std::string s)
{
	std::stringstream pre;

	std::string path = endpoint == "/" ? "" : endpoint;
	
	pre << "3::" << path << ":" << s;

	std::string msg = pre.str();

	log("sending message: %s", msg.c_str());

	_ws->send(msg);
}
开发者ID:Abioy,项目名称:OpenBird,代码行数:14,代码来源:SocketIO.cpp

示例13: 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);
}
开发者ID:Abioy,项目名称:OpenBird,代码行数:19,代码来源:SocketIO.cpp

示例14: jsWebSocketPrototypeFunctionSend

EncodedJSValue JSC_HOST_CALL jsWebSocketPrototypeFunctionSend(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());
    if (exec->argumentCount() < 1)
        return JSValue::encode(jsUndefined());
    ExceptionCode ec = 0;
    const String& data(ustringToString(exec->argument(0).toString(exec)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());


    JSC::JSValue result = jsBoolean(imp->send(data, ec));
    setDOMException(exec, ec);
    return JSValue::encode(result);
}
开发者ID:13W,项目名称:phantomjs,代码行数:19,代码来源:JSWebSocket.cpp

示例15: disconnectFromEndpoint

void SIOClientImpl::disconnectFromEndpoint(const std::string& endpoint)
{
	_clients.erase(endpoint);

	if (_clients.empty() || endpoint == "/")
    {
		log("SIOClientImpl::disconnectFromEndpoint out of endpoints, checking for disconnect");
		
		if(_connected)
            this->disconnect();
	}
    else
    {
		std::string path = endpoint == "/" ? "" : endpoint;

		std::string s = "0::" + path;

		_ws->send(s);
	}
}
开发者ID:Abioy,项目名称:OpenBird,代码行数:20,代码来源:SocketIO.cpp


注:本文中的WebSocket::send方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。