websocket的url怎么写

1.如何使用WebSocket

网络套接字是下一代WEB应用程序双向通信技术,它是基于一个独立的socket并且需要客户端浏览器支持HTML5一旦你了解了网络套接字与WEB服务器的连接,你将可以从浏览器发送数据到服务器并且可以接收由服务器返回的响应数据。

以下是创建一个新的WebSocket对象的API:复制代码 代码如下:var Socket = new WebSocket(url, [protocal] );这里第一个参数是指要连接的URL,第二个参数是可选的,如果需要的话,则是指定一个的服务器支持的协议。WEB Socket属性:属性 说明Socket.readyState readyState的代表的ReadOnly属性的连接状态。

它可以有以下值:一个0值表示该连接尚未建立。值为1表示连接建立和沟通是可能的。

值为2表示连接是通过将结束握手。值为3表示连接已关闭或无法打开。

Socket.bufferedAmount 读属性的bufferedAmount代表文本的字节数,utf - 8的排队使用send()方法。WEB Socket事件:事件 处理程序 说明open Socket.onopen 此事件发生在套接字建立连接。

message Socket.onmessage 此事件发生时,客户端收到来自服务器的数据。error Socket.onerror 此事件发生时有任何通信错误。

close Socket.onclose 此事件发生在连接关闭。WEB Socket方法:方法 说明Socket.send() send(data)方法用来连接传输数据。

Socket.close() close()方法将被用于终止任何现有的连接。WEB Socket例子:复制代码 代码如下:<body> Run WebSocket。

2.怎样自定义并使用websocket子协议

由于Websocket协议提供的是一个基于包的可靠传输协议,它并不像HTTP那样是个应用协议,它的包对内容并不像HTTP那样有Content-Type字段去描述,是一个比较底层的协议,就和TCP一样,如果要用来通信通常需要自己来定一个协议。那么subprotocol就可以作为一个标示来让服务端和客户端之间进行协商用。

客户端在进行连接的时候可以声明自己能接受的子协议类型。这和HTTP请求头里带的Accept和Accept-Encoding头字段一样,说明自己可以接受那些类型文件,或者编码,通常是压缩类型

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Encoding:gzip, deflate, sdch

HTTP的请求里带的这样,向server端说明它能理解哪些类型的数据。

然后和HTTP一样,Server会根据合适的头来返回相应的内容。 然后客户单就知道怎么样去解释响应的数据了。

3.websocket建立连接时能传递参数吗

在js传参的时候参数就和其他地址一样传就行 比如

1

2

var wsUrl = 'ws://localhost:8080/ScadaWebSocket/ScadaSocket/我的参数'

webSocket=new WebSocket(wsUrl);

后台的类上面的注解这样写

1

@ServerEndpoint(value = "/ScadaSocket/{param}")

注意上面的花括号了吗? 那个其实就是你传过来的参数

4.如何使用WebSocket

WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。

在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

Cocos2d-x引擎集成libwebsockets,并在libwebsockets的客户端API基础上封装了一层易用的接口,使得引擎在C++, JS, Lua层都能方便的使用WebSocket来进行游戏网络通讯。引擎支持最新的WebSocket Version 13。

在C++中使用详细代码可参考引擎目录下的/samples/Cpp/TestCpp/Classes/ExtensionsTest/NetworkTest/WebSocketTest.cpp文件。头文件中的准备工作首先需要include WebSocket的头文件。

#include "network/WebSocket.h"cocos2d::network::WebSocket::Delegate定义了使用WebScocket需要监听的回调通知接口。使用WebSocket的类,需要public继承这个Delegate。

class WebSocketTestLayer : public cocos2d::Layer, public cocos2d::network::WebSocket::Delegate 并Override下面的4个接口:virtual void onOpen(cocos2d::network::WebSocket* ws); virtual void onMessage(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::Data& data); virtual void onClose(cocos2d::network::WebSocket* ws); virtual void one rror(cocos2d::network::WebSocket* ws, const cocos2d::network::WebSocket::ErrorCode& error); 后面我们再详细介绍每个回调接口的含义。新建WebSocket并初始化WebSocket.org 提供了一个专门用来测试WebSocket的服务器"ws://echo.websocket.org"。

测试代码以链接这个服务器为例,展示如何在Cocos2d-x中使用WebSocket。新建一个WebSocket:cocos2d::network::WebSocket* _wsiSendText = new network::WebSocket(); init第一个参数是delegate,设置为this,第二个参数是服务器地址。

URL中的"ws://"标识是WebSocket协议,加密的WebSocket为"wss://"._wsiSendText->init(*this, "ws://echo.websocket.org") WebSocket消息监听在调用send发送消息之前,先来看下4个消息回调。onOpeninit会触发WebSocket链接服务器,如果成功,WebSocket就会调用onOpen,告诉调用者,客户端到服务器的通讯链路已经成功建立,可以收发消息了。

void WebSocketTestLayer::onOpen(network::WebSocket* ws) { if (ws == _wsiSendText) { _sendTextStatus->setString("Send Text WS was opened."); } } onMessagenetwork::WebSocket::Data对象存储客户端接收到的数据, isBinary属性用来判断数据是二进制还是文本,len说明数据长度,bytes指向数据。void WebSocketTestLayer::onMessage(network::WebSocket* ws, const network::WebSocket::Data& data) { if (!data.isBinary) { _sendTextTimes++; char times[100] = {0}; sprintf(times, "%d", _sendTextTimes); std::string textStr = std::string("response text msg: ")+data.bytes+", "+times; log("%s", textStr.c_str()); _sendTextStatus->setString(textStr.c_str()); } } onClose不管是服务器主动还是被动关闭了WebSocket,客户端将收到这个请求后,需要释放WebSocket内存,并养成良好的习惯:置空指针。

void WebSocketTestLayer::onClose(network::WebSocket* ws) { if (ws == _wsiSendText) { _wsiSendText = NULL; } CC_SAFE_DELETE(ws); } one rror客户端发送的请求,如果发生错误,就会收到onError消息,游戏针对不同的错误码,做出相应的处理。void WebSocketTestLayer::onError(network::WebSocket* ws, const network::WebSocket::ErrorCode& error) { log("Error was fired, error code: %d", error); if (ws == _wsiSendText) { char buf[100] = {0}; sprintf(buf, "an error was fired, code: %d", error); _sendTextStatus->setString(buf); } } send消息到服务器在init之后,我们就可以调用send接口,往服务器发送数据请求。

send有文本和二进制两中模式。发送文本_wsiSendText->send("Hello WebSocket, I'm a text message."); 发送二进制数据(多了一个len参数)_wsiSendBinary->send((unsigned char*)buf, sizeof(buf)); 主动关闭WebSocket这是让整个流程变得完整的关键步骤, 当某个WebSocket的通讯不再使用的时候,我们必须手动关闭这个WebSocket与服务器的连接。

close会触发onClose消息,而后onClose里面,我们释放内存。_wsiSendText->close(); 在Lua中使用详细代码可参考引擎目录下的/samples/Lua/TestLua/Resources/luaScript/ExtensionTest/WebProxyTest.lua文件。

创建WebSocket对象脚本接口相对C++要简单很多,没有头文件,创建WebSocket对象使用下面的一行代码搞定。 参数是服务器地址。

wsSendText = WebSocket:create("ws://echo.websocket.org") 定义并注册消息回调函数回调函数是普通的Lua function,4个消息回调和c++的用途一致,参考上面的说明。local function wsSendTextOpen(strData) sendTextStatus:setString("Send Text WS was opened.") end local function wsSendTextMessage(strData) 。

websocket的url怎么写

转载请注明出处育才学习网 » websocket的url怎么写

知识

脱式计算是怎么写

阅读(285)

本文主要为您介绍脱式计算是怎么写,内容包括二年级脱式计算怎么写,怎么写,脱式计算,脱式计算怎么写。脱式计算,即递等式计算,把计算过程完整写出来的运算,也就是脱离竖式的计算。在计算混合运算时,通常是一步计算一个算式(逐步计算,等号不能写

知识

才怪英文怎么写

阅读(297)

本文主要为您介绍才怪英文怎么写,内容包括“才怪”用英语怎么说,“才怪”用英语怎么说,英语中的“才怪”怎么说。My ass 才怪 表示强烈的质疑!My ass 的原意是"我的屁屁",是一个用来表示对对方所说的话强烈的不相信的用语,很像中文里的“才

知识

2015产假申请书怎么写

阅读(184)

本文主要为您介绍2015产假申请书怎么写,内容包括产假申请书怎么写,产假申请书,产假申请书怎么写,产假申请书,休产假申请书怎么写。休正常的产假这么写: 请假申请书 尊敬的公司领导: 因本人有孕在身,预产期X月底,现因身体需要申请回家休息,调养身

知识

10到90用英语怎么写

阅读(237)

本文主要为您介绍10到90用英语怎么写,内容包括10到90的英文写法,10到90的英语怎么写w,11到90的英文字母怎么写。11 eleven 12 twelve 13 thirteen 14 fourteen 15 fifteen 16 sixteen 17

知识

100000美金怎么写

阅读(264)

本文主要为您介绍100000美金怎么写,内容包括$100000英文大写怎么写10万美元英文大写怎么写金额大写,类似于,&#36;100000英文大写怎么写10万美元英文大写,美元金额大写怎么写。U.S. DOLLARS ONE THOUSAND SEVEN HUNDRED SEVENTY EIGHT POINT

知识

淘宝客服工作周报怎么写啊

阅读(709)

本文主要为您介绍淘宝客服工作周报怎么写啊,内容包括淘宝客服工作周报怎么写,淘宝客服工作总结怎么写,淘宝客服组长周报怎么淘宝客服组长周报怎么写。主要写一下主要的工作内容,强调安全的重要性,取得的成绩,以及不足,最后提出合理化的建议或者

知识

曲的繁体字行书怎么写

阅读(262)

本文主要为您介绍曲的繁体字行书怎么写,内容包括“曲”的繁体字怎么写,曲字繁体字怎么写,“写”的繁体字行书怎么写。

知识

尝试的英文怎么写

阅读(185)

本文主要为您介绍尝试的英文怎么写,内容包括尝试的英文怎样写,尝试用英语怎么说,“尝试”的英语单词怎么写。尝试”的英语单词有try、 attempt。try 英 [traɪ] 美 [traɪ] vt.& vi.试图,努力;实验;审判;考验n.

知识

车辆识别代码怎么写

阅读(204)

本文主要为您介绍车辆识别代码怎么写,内容包括车辆识别代码是什么,车辆识别代号是什么,如何知道,车辆识别代号是什么。VIN码是英文(Veterinary Information Network )的缩写,译为车辆识别代码,又称车辆识别码,车辆识别代码,

知识

尺字的笔画顺序怎么写

阅读(207)

本文主要为您介绍尺字的笔画顺序怎么写,内容包括尺字的笔画顺序怎么写,尺字笔画顺序怎么写,尺字的笔顺笔画顺序。尺笔顺:横折、横、撇、捺。基本信息:拼音:chǐ,chě 部首:尸、四角码:77807、仓颉:so 86五笔:nyi、98五笔:nyi、

知识

346除以二竖式怎么写

阅读(257)

本文主要为您介绍346除以二竖式怎么写,内容包括346÷22=多少竖式怎么做,用竖式计算.346÷2=※453÷9=※824÷4=34*21=36*58=64*19=,276除以二的竖式怎么写。276除以2的竖式计算如下所示:

知识

7月英语大写怎么写

阅读(211)

本文主要为您介绍7月英语大写怎么写,内容包括七月七日用英语如何写,7月英语怎么写,7用英语怎么写。在表格类里,英语与汉语不同,英语格式为:月/日/年,即July/7/2011(或7/7/2011);在句子里,写为July 7,如:I

知识

92除以8的竖式怎么写

阅读(296)

本文主要为您介绍92除以8的竖式怎么写,内容包括92÷8怎么列竖式计算,92÷8怎么列竖式计算,92*8的竖式计算,怎么写。92÷3=30……2

知识

大写七元怎么写

阅读(182)

本文主要为您介绍大写七元怎么写,内容包括大写一万九千四百点七元怎么写,大写四千零四十二点七元怎么写,大写四百九十点七元怎么写。七字大写为: 柒人民币大写数字注意事项中文大写金额数字到“元”为止的,在“元”之后,应写“整”(或“正”)字,

知识

mysql连接数据库url怎么写

阅读(294)

本文主要为您介绍mysql连接数据库url怎么写,内容包括jdbc连接mysql时中的URL怎么写的,连接mysql的url写法,连接mysql的url写法。String url="jdbc:mysql://localhost:3306/sample_db?user=root&password

知识

javaurl本地路径怎么写

阅读(302)

本文主要为您介绍javaurl本地路径怎么写,内容包括java读取本地文件路径怎么写,java获取本地文件夹路径怎么写,java读取本地文件路径怎么写。URI是统一资源标识符,是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对任何(包括本

知识

androidurl文件路径怎么写

阅读(286)

本文主要为您介绍androidurl文件路径怎么写,内容包括android文件路径怎么写,访问androidassets下的文件路径要怎么写,求教android相对路径的写法。public static void writeFileData(String fileName, String message){tr

知识

tomcat的action的url怎么写

阅读(225)

本文主要为您介绍tomcat的action的url怎么写,内容包括tomcat的url端口号改变了,怎么写,tomcat上的url是怎么组成的,怎么理解tomcat的url注解方法。在tomcat的配置文件server.xml中,找到如下的代码:[plain] view plain copy<Connector po

知识

bo单点登录url怎么写

阅读(298)

本文主要为您介绍bo单点登录url怎么写,内容包括Smarty编写用户登录怎样用cookie?,帆软单点登录怎么写login.jsp,我在用java编写单点登录服务端,请教单点登出的思路。查看文章 编写你自己的单点登录(SSO)服务 2 2009/07/17 上午 10:49 编写你

知识

c中wmp控件怎么写url或文件名

阅读(230)

本文主要为您介绍c中wmp控件怎么写url或文件名,内容包括javascript引用wmp控件URL属性,WMP控件在VC++6.0中怎么用啊,windowsmediaplayer控件能打开的url总共。建立一个对话框 IDD_PLAYER_DIALOG 在对话框上单击右键,选择添加类,基类选择CDial

知识

htmlurl路径怎么写

阅读(226)

本文主要为您介绍htmlurl路径怎么写,内容包括HTML相对路径怎么写,站点是index.html,HTTP地址(URL)怎么写,HTML相对路径怎么写。HTML写相对路径的代码:<html><body><center>小说<p><a href="/jinyong/sd.html"&gt;

知识

html5url怎么写

阅读(234)

本文主要为您介绍html5url怎么写,内容包括html5input的属性type="url"格式必须为http://*****而www.****不,如何用HTML5的FileReader生成DataUrl,html5标准页面怎么写。新建文本文档命名为:DataUrlBuiler.htm,一定要修改扩展名打开文件:DataUrlBu

[/e:loop]