当前位置: 首页 > news >正文

国内漂亮大气的网站阿里云服务器可以做几个网站

国内漂亮大气的网站,阿里云服务器可以做几个网站,网络营销类型,百度广告官网Springboot 接入 WebSocket 实战 前言#xff1a; WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 简单理解#xff1a; 1#xff0c;常见开发过程中我们知道 Http协议#xff0c;客户端…Springboot 接入 WebSocket 实战 前言 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 简单理解 1常见开发过程中我们知道 Http协议客户端请求一次服务器响应一次推送数据不能主动的推送数据每次请求都要做一个连接非常消耗性能。 2websocket 建立一次链接可以主动向客户端推送数据。 需求说明 1项目需要做一个知识助手远程调用三方接口那边是websocket 实时推送数据类似gpt 2后端需要连接三方服务调用接口返回数据给前端做渲染 功能实现 1依赖 dependencygroupIdjavax.websocket/groupIdartifactIdjavax.websocket-api/artifactIdversion1.1/version/dependencydependencygroupIdcom.squareup.okhttp3/groupIdartifactIdokhttp/artifactId/dependency2代码接口实现 controller: GetMapping(/callxxxxModel)public String callxxxxModel(RequestParam(paramOne) String paramOne) {return webSocketxxxClientService.callxxxxModel(paramOne);}service: /*** * param paramOne* 参数1*/String callxxxxModel(String paramOne);serviceImpl: Slf4j Service(webSocketxxxClientService) public class WebSocketxxxClientServiceImpl implements WebSocketxxxClientService{Overridepublic String callxxxxModel(String paramOne, Integer executeType) {String uri ws://10.xx.xx.13:123/sss/xxx/aa/xxx_v2;String xappid lsjdfljsdxxx09980dsfsd;String xappkey xxsfdsf12123123;long timestamp System.currentTimeMillis();String seqid ;log.info(timestamp timestamp);log.info(seqid seqid);WebSocketClientRemote client new WebSocketClientRemote(uri, xappid, xappkey);// Prepare messageMapString, Object message new HashMap();message.put(uid, xappid);message.put(timestamp, timestamp);message.put(seqid, seqid);message.put(stream, true);// 会话识别码切换话题可能需要更换message.put(session_id, seqid);message.put(prov, xxsdfsdf23424332);message.put(param1, paramOne);message.put(param2, xvsdfds23423423xxxxx);String jsonMessage JSON.toJSONString(message);client.sendMessage(jsonMessage);String responseMessage client.getResponseMessage();client.close();return responseMessage;}package com.xx.xx.xx.web;import com.xx.xx.common.result.ResultCodeEnum; import com.xx.xx.xxx.exception.CloudException; import lombok.extern.slf4j.Slf4j; import okhttp3.*; import okio.ByteString;import javax.websocket.ClientEndpoint; import java.util.concurrent.CountDownLatch;/*** author nobuyboday*/ Slf4j ClientEndpoint public class WebSocketClientRemote {private final OkHttpClient client;private final WebSocket webSocket;// public final CountDownLatch latch new CountDownLatch(50);// 记录websocket 返回的信息public String responseMessage ;public WebSocketClientRemote(String uri, String xappid, String xappkey) {client new OkHttpClient();Request request new Request.Builder().url(uri)// 添加自定义头.addHeader(X-App-ID, xxxfjslfjslj1231321xxxx3)// 添加自定义头.addHeader(X-App-Key, 0923jhdjflsdjflsdjljxxxxxxflsn).build();webSocket client.newWebSocket(request, new WebSocketListener() {Overridepublic void onOpen(WebSocket webSocket, Response response) {log.info(已连接到服务器................);}Overridepublic void onMessage(WebSocket webSocket, String text) {// log.info(收到消息: text);responseMessage text;}Overridepublic void onMessage(WebSocket webSocket, ByteString bytes) {log.info(收到字节消息: bytes.hex());}Overridepublic void onClosing(WebSocket webSocket, int code, String reason) {webSocket.close(1000, null);log.info(连接关闭: reason);// latch.countDown();}Overridepublic void onFailure(WebSocket webSocket, Throwable t, Response response) {log.info(连接失败: t.getMessage());}});}public void sendMessage(String message) {webSocket.send(message);}public void close() {webSocket.close(1000, 关闭连接);}public void await() throws InterruptedException {// latch.await();}public String getResponseMessage() {// 对方数据是以 #END 代表推送数据完毕这个\\u003c#END\\u003e是#END编码问题 不用管boolean isReturn responseMessage.endsWith(#END) || responseMessage.endsWith(\\u003c#END\\u003e) || responseMessage.contains(#END)|| responseMessage.contains(\\u003c#END\\u003e);if (isReturn) { // log.info(最终的responseMessage:{}, responseMessage);return responseMessage.substring(0, responseMessage.length() - #END.length());} else {// 循环等待try {Thread.sleep(3000);} catch (Exception e) {throw new CloudException(ResultCodeEnum.CALL_GROUP_DCOOS_TYCLOUD_KNOWLEDGE_ASSISTANT_FAIL.getCode(),ResultCodeEnum.CALL_GROUP_DCOOS_TYCLOUD_KNOWLEDGE_ASSISTANT_FAIL.getMessage() : e);}return getResponseMessage();}}} 遇到的问题 1websocket 没有返回值需要加一个接口获取返回值 2对方返回的数据 #END 结尾在接收判断是否完毕后字符集问题 不识别 #END 3推送数据要保证全部推送完毕要有个循环调用 喜欢我的文章记得点个在看或者点赞持续更新中ing…
http://www.dnsts.com.cn/news/59554.html

相关文章:

  • 微信网站平台怎么建立wordpress开发者文档
  • 阿里巴巴开通诚信通后网站怎么做贵州便宜网站推广优化电话
  • 中国建设银行网站招聘湖北企业建站系统信息
  • 免费网站安全软件大全游戏网址域名查询官网
  • 织梦如何做移动网站药检局信息化网站系统建设方案
  • 做网站需要服务器和什么软件网站建设空格怎么打
  • 东莞网站的优化010-58813333 可信网站
  • 网站建设合同附件东莞网站建设方案外包
  • 惠州企业网站建设网络工程师高级职称
  • 360网站建设公司qq企业邮箱下载
  • 网站关键词提升做搜狗手机网站快
  • 网站服务器速度查询建站
  • 福建两学一做网站网页设计网站建设流程
  • 建设高校网站的现实意义企业管理咨询是一种
  • 求个没封的a站yw1129cm个人电脑建立网站
  • 网站如何自动手机版h网站模板
  • 学校网站模板wordpress不付费免费网站
  • 网站开发工程师岗位概要大连网站优化快速排名
  • 建筑网站图片推荐做流程图的网站
  • 查建筑公司资质的网站北京建站公司推荐首推万维科技
  • 怎么建立公司网站费用wordpress导航站
  • 天天向上网站建设仙居县建设规划局网站
  • 海洋馆网站建设有没有好网站推荐
  • 公司网站域名无法解析坪山网站建设机构
  • 做网站搞什么流量网站空间会过期吗
  • wordpress工作室主题网站做进一步优化
  • 专题研究网站建设工作动态wordpress 媒体库 链接
  • 青岛网站建设优化国外 做励志视频的网站
  • 网站开发的阶段做图片网站赚不赚钱
  • 企业内部网站建设费用连云港规划建设网站