专栏首页三言两语WebSocket的初次使用及调试

WebSocket的初次使用及调试

出现的错误
1
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project JavaWebSocket: Fatal error compiling: 无效的目标发行版: 1.8 -> [Help 1]
修改:


   <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
      <warSourceDirectory>WebRoot</warSourceDirectory>
      <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
  </plugin>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin>
<plugins>
  <plugin>
    <artifactId>maven-war-plugin</artifactId>
  </plugin>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <source>1.6</source>
      <target>1.6</target>
    </configuration>
  </plugin>
</plugins>

此处使用maven自动打包上传的插件

4.0.0 WeeeebSkt WeeeebSkt 0.0.1-SNAPSHOT war

[INFO] Deploying war to http://localhost:8080/WeeeebSkt [INFO] OK - Deployed application at context path /WeeeebSkt [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ———————————————————————— [INFO] Total time: 2.045 s [INFO] Finished at: 2017-11-13T13:29:02+08:00 [INFO] Final Memory: 15M/308M [INFO] ————————————————————————

(index):20 WebSocket connection to 'ws://localhost:8080/websocket' failed: Error during WebSocket handshake: Unexpected response code: 404

if (‘WebSocket’ in window) { //websocket = new WebSocket(“ws://localhost:8080/websocket”); websocket = new WebSocket(“ws://localhost:8080/websocket”); }

WebSocket connection to ‘ws://localhost:8080/WeeeebSkt/websocket’ failed: Error during WebSocket handshake: Unexpected response code: 404

if (‘WebSocket’ in window) { //websocket = new WebSocket(“ws://localhost:8080/websocket”); websocket = new WebSocket(“ws://localhost:8080/websocket”); }

[CodeLive] HTTP detected: Connecting using WS VM37:109 [CodeLive] Connected to CodeLive at ws://127.0.0.1:8123

import java.io.IOException; import java.util.concurrent.CopyOnWriteArraySet; import javax.websocket.*; import javax.websocket.server.ServerEndpoint;

/**

  • @ServerEndpoint 注解是一个类层次的注解,它的功能主要是将目前的类定义成一个websocket服务器端,
  • 注解的值将被用于监听用户连接的终端访问URL地址,客户端可以通过这个URL来连接到WebSocket服务器端 */ @ServerEndpoint(“/websocket”) public class Ws { //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。 private static int onlineCount = 0; //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识 private static CopyOnWriteArraySet webSocketSet = new CopyOnWriteArraySet(); //与某个客户端的连接会话,需要通过它来给客户端发送数据 private Session session; /**
    • 连接建立成功调用的方法
    • @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据 */ @OnOpen public void onOpen(Session session){ this.session = session; webSocketSet.add(this); //加入set中 addOnlineCount(); //在线数加1 System.out.println(“有新连接加入!当前在线人数为” + getOnlineCount()); } /**
    • 连接关闭调用的方法 */ @OnClose public void onClose(){ webSocketSet.remove(this); //从set中删除 subOnlineCount(); //在线数减1 System.out.println(“有一连接关闭!当前在线人数为” + getOnlineCount()); } /**
    • 收到客户端消息后调用的方法
    • @param message 客户端发送过来的消息
    • @param session 可选的参数 */ @OnMessage public void onMessage(String message, Session session) { System.out.println(“来自客户端的消息:” + message); //群发消息 for(Ws item: webSocketSet){ try { item.sendMessage(message); } catch (IOException e) { e.printStackTrace(); continue; } } } /**
    • 发生错误时调用
    • @param session
    • @param error */ @OnError public void onError(Session session, Throwable error){ System.out.println(“发生错误”); error.printStackTrace(); } }

4.0.0 JavaWebSocket JavaWebSocket 0.0.1-SNAPSHOT war 3.1

javax.websocket javax.websocket-api 1.0 src maven-compiler-plugin 3.3 1.8 1.8 org.codehaus.mojo tomcat-maven-plugin 1.1 http://localhost:9080/manager/text tomcat8 admin admin true

  <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
      <warSourceDirectory>WebRoot</warSourceDirectory>
      <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
  </plugin>
</plugins>

```

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 快速建站“新玩具”—glitch.me

    今天在 YouTube 看了一个谷歌的开发视频,里面主讲者用 Glitch.me 做了代码的演示平台,所以自然地通过视频下方的演示链接,接触到了 Glitch,...

    ZONGLYN
  • CentOS集群相关问题

    要安装 openssh,openssh-servers,openssh-clients 然后启动ssh,要用service sshd start

    ZONGLYN
  • SourceInsight-强大的代码编辑和浏览工具-中文教程

    Source Insight作为一款功能强大的代码编辑查看软件,网上教程很多,但是都侧重某一方面展开介绍,很少有比较系统的完整软件的介绍,写这篇文档的目的就是尝...

    ZONGLYN
  • linux分区

    实际上,很多时候我们只需要分两个区:`/`和交换分区,日常使用基本不会有任何影响,甚至于交换分区对于现在的电脑来说都不是必要的,我们完全可以只分配一个根分区。l...

    ianzhi
  • virink的web题

    这里发现服务器是用OpenResty服务器,这里pcat科普下:OpenResty是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库...

    ChaMd5安全团队
  • 使用Django实现分页器功能

    程序员同行者
  • python pygame安装

    SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让...

    李小白是一只喵
  • PHP+MYSQL分页最终章6

    //两种情况下 首页、上一页 的显示效果 这段的意思是页码大于1就暗下来首页和上一页,如果小于1就上一页和首页亮起就这样逻辑

    用户7873631
  • Django 2.1.7 分页 Paginator

    https://docs.djangoproject.com/zh-hans/2.1/topics/pagination/

    Devops海洋的渔夫
  • 腾讯《天涯明月刀》5年研发历程全复盘

    作为腾讯游戏首款自主研发的3D武侠题材MMORPG游戏,《天涯明月刀》凭借其自研的Quicksliver引擎,高度还原了很多真实景观,塑造出杭州、开封等经典场景...

    腾讯大讲堂

扫码关注云+社区

领取腾讯云代金券