本文整理汇总了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);
}
示例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;
}
示例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;
}
示例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;
}
示例5: processBinaryMessage
//! [processBinaryMessage]
void EchoServer::processBinaryMessage(QByteArray message)
{
WebSocket *pClient = qobject_cast<WebSocket *>(sender());
if (pClient != 0)
{
pClient->send(message);
}
}
示例6: processMessage
//! [processMessage]
void EchoServer::processMessage(QString message)
{
WebSocket *pClient = qobject_cast<WebSocket *>(sender());
if (pClient != 0)
{
pClient->send(message);
}
}
示例7: heartbeat
void SIOClientImpl::heartbeat(float dt)
{
std::string s = "2::";
_ws->send(s);
log("Heartbeat sent");
}
示例8: connectToEndpoint
void SIOClientImpl::connectToEndpoint(const std::string& endpoint)
{
std::string path = endpoint == "/" ? "" : endpoint;
std::string s = "1::" + path;
_ws->send(s);
}
示例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;
}
示例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);
}
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
}