Tomcat8部署WebSocket后Android客户端怎样实现 80C

参考了http://blog.chenzuhuang.com/archive/28.html 的代码,成功利用Tomcat8搭建了JSR356标准的WebSocket服务器,HTML的客户端也成功实现了,但是我想写一个Android平台下的客户端,请问


      //判断当前浏览器是否支持WebSocket
      if('WebSocket' in window){
          websocket = new WebSocket("ws://localhost:8080/MyWebSocket/websocket");
      }
      else{
          alert('Not support websocket')
      }

      //连接发生错误的回调方法
      websocket.onerror = function(){
          setMessageInnerHTML("error");
      };

      //连接成功建立的回调方法
      websocket.onopen = function(event){
          setMessageInnerHTML("open");
      }

      //接收到消息的回调方法
      websocket.onmessage = function(){
          setMessageInnerHTML(event.data);
      }

      //连接关闭的回调方法
      websocket.onclose = function(){
          setMessageInnerHTML("close");
      }

      //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
      window.onbeforeunload = function(){
          websocket.close();
      }

      //将消息显示在网页上
      function setMessageInnerHTML(innerHTML){
          document.getElementById('message').innerHTML += innerHTML + '<br/>';
      }

      //关闭连接
      function closeWebSocket(){
          websocket.close();
      }

以上的这段代码用Java怎么写?

1个回答

用你的android托个浏览器的控件不就可以了。
如果你用原生的写法。自己写socket.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
springboot websocket消息推送和android客户端
使用springboot websocket实现推送消息, 在android client 使用websocket client接收
使用Tomcat8实现WebSocket的简单例子
关于WebSocket的入门例子。。。
webSocket实现Android客户端之间简单的通讯
webSocket实现Android客户端之间简单的通讯,或者群发
WebSocket实现Android客户端之间的简单通讯
作为一个刚毕业的程序猴,自觉的自己能力比较欠缺,正好最近公司没有什么项目,就考虑自己动手做个项目。想来想去,就把自己一直想做的即时通讯拿出来做做。可是问题来了,作为一个Android开发人员,一直没有接触后台的人来说,做一个完整的项目还是比较麻烦的。于是只有边学边做了。 对于通讯来说,我对Websocket情有独钟,可能是因为在学校的时候听说过吧。话不多说,经过几天的调研,终于在搭了一个简单的S...
tomcat8 websocket 如何设置 org.apache.tomcat.websocket.executorMaxSize
tomcat8 websocket 如何设置 org.apache.tomcat.websocket.executorMaxSize ,现在的问题是当连接数超过200的时候,新的连接就进不来了
solr7.2.0 jdk1.8 tomcat8 部署
solr7.2.0在tomcat8中的部署,http://blog.csdn.net/m0_37044606/article/details/79153211
Tomcat8部署方式
一:Tomcat的下载 到tomcat官网选择合适的版本进行下载,可以下载解压版和安装版,无论是哪一种都先要安装jdk。 二:Tomcat应用部署 1 使用tomcat部署应用主要有如下几种方式 静态部署。在启动tomcat之前已经安装了web应用 动态部署。使用 Tomcat的 Manager 应用直接操控已经部署好的 Web 应用(依赖 auto-deployment 特性)。 细分的话主...
Tomcat8部署方式(未完待续)
Tomcat8如何部署web应用 1. 利用Tomcat自动部署 方式一(亲测有效) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;放入到Tomcat webapps目录下即(因为在conf文件夹下的server.xml指定了如下内容) &amp;lt;Host name=&quot;localhost&quot; appBase=&quot;webapps&quot; unpackWARs=&quot;true&quot; autoDep...
Solr6.6.2在Tomcat8上的部署
solr6.6.2既可以独立运行也可以部署到Tomcat下,本文档讲述的是在Tomcat8下部署。要求jdk1.8,tomcat1.8.
Windows部署Tomcat8启动服务
前言:Tomcat运行基于jdk环境,所有首先需要安装配置jdk1. 配置Tomcat环境变量添加 TOMCAT_HOME 环境变量,也就是tomcat目录,D:\apache-tomcat-8.0.27将变量添加到系统的path目录中,例如:%TOMCAT_HOME%\bin2. 添加Tomcat服务cmd命令行界面进入Tomcat解压目录的bin目录安装tomcat服务运行service.bat
websocket连接tomcat8服务器出现404
利用javax扩展包下的websocket API开发的websocket服务部署正常,代码如下: 构建maven工程,引入项目依赖jar包: &amp;lt;dependency&amp;gt;        &amp;lt;groupId&amp;gt;javax.websocket&amp;lt;/groupId&amp;gt;        &amp;lt;artifactId&amp;gt;javax.websocket-api&amp;lt;/arti...
WebSocket实例—初级聊天室(来自Tomcat8的examples)
程序跑起来在Tomcat的Webapps中自带有Tomcat的很多小例子。本文选取其中的关于WebSocket的例子,来进行学习。首先先将程序跑起来。 开发环境eclipse+tomcat8 1、新建项目名称为examples(自取名字也可以,但是在程序中也要更改,这里避免麻烦,就不该了) 2、将websocket文件夹拷贝到WebContent目录下 3、将WEB-INF/classes文
使用Tomcat8的WebSocket,Json解析的问题
Tomcat,WebSocket,Json,甚至Java都是第一次使用。rnWebSocket是这么用的rn @ServerEndpoint(value="/SocketTest")rn public class SocketServer rn }rnJson使用的com.alibaba.fastjson.JSON;rnrn我是当收到rn @OnMessagern public void onMessage(Session session,String message) rn rn消息时,调用图中代码,可结果就是没有任何响应,并且连接断开。调试模式执行代码,在断点处中断时的信息如下图1,单步执行后如下图2,同时程序如同宕机,代码中也没有catch到异常(没有执行 e.printStackTrace();)rnrn[img=https://img-bbs.csdn.net/upload/201611/21/1479710478_295643.png][/img]rn图1rnrn[img=https://img-bbs.csdn.net/upload/201611/21/1479710486_848207.png][/img]rn图2rnrn拜托各位看看这是怎么回事!rn另外,这段代码如果用Application方式编译执行就没有问题。rn
使用tomcat8和websocket进行消息推送失败
首先上代码,[code=java]rnprivate static int onlineCount = 0;rn // concurrent包的线程安全Set,用来存放每个客户端对应的Websocket_firstServer对象。若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识rn private static CopyOnWriteArraySet webSocketSet = new CopyOnWriteArraySet();rn // 与某个客户端的连接会话,需要通过它来给客户端发送数据rn private Session session;rnrn *//**rn * 连接建立成功调用的方法rn * rn * @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据rn *//*rnrn @OnOpenrn public void onOpen(Session session) rn this.session = session;rn webSocketSet.add(this); // 加入set中rn addOnlineCount(); // 在线数加1rn System.out.println("有新连接加入!当前在线人数为" + getOnlineCount());rn rnrn *//**rn * 连接关闭调用的方法rn *//*rnrn @OnClosern public void onClose() rn webSocketSet.remove(this); // 从set中删除rn subOnlineCount(); // 在线数减1rn System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount());rn rnrn *//**rn * 收到客户端消息后调用的方法rn * rn * @param message 客户端发送过来的消息 @param session 可选的参数rn *//*rnrn @OnMessagern public void onMessage(String message, Session session) rn System.out.println("来自客户端的消息:" + message);rn // 群发消息rn for (Websocket_firstServer item : webSocketSet) rn try rn item.sendMessage(message);rn catch (IOException e) rn e.printStackTrace();rn continue;rn rn rn rnrn *//**rn * 发生错误时调用rn * @param sessionrn * @param errorrn *//*rnrn @OnErrorrn public void onError(Session session, Throwable error) rn System.out.println("发生错误");rn error.printStackTrace();rn rnrn public void sendMessage(String message) throws IOException rn this.session.getBasicRemote().sendText(message);rn // this.session.getAsyncRemote().sendText(message);rn rnrn public static synchronized int getOnlineCount() rn return onlineCount;rn rnrn public static synchronized void addOnlineCount() rn Websocket_firstServer.onlineCount++;rn rnrn public static synchronized void subOnlineCount() rn Websocket_firstServer.onlineCount--;rnrn [/code]rn然后我在html页面调用rn[code=html]rnrnrnrn rn html5+bootstraprnrnrn rnrn[/code]rn访问html的时候报错rn[code=text]"NetworkError: 404 Not Found - http://localhost:8080/websocket/"rn/websocket/rnFirefox 无法建立到 ws://localhost:8080/websocket/ 服务器的连接。rn rnsocket = new WebSocket("ws://localhost:8080/websocket/");[/code]
项目从 tomcat7部署到tomcat8
这段时间将一个老项目从tomcat7部署到tomcat8上,期间遇到的典型问题。接下来我会介绍下整个升级过程和在升级中遇到的问题。首先要装个jdk8+,因为开发环境用的是eclipse,还要搞个兼容tomcat8的eclipse.新下的tomcat8里是自带20几个jar的,这是要留着的不能直接拿来tomcat7的lib就用。因为老项目要依赖的jar都放在了tomcat下没有用maven,所以拿来...
在Java7与Tomcat8环境下使用WebSocket实现聊天的示例
文中案例在apache-tomcat-8.0.15和jdk1.8.0_25环境下开发,运行。不过标题上是Java7,并不造成影响,代码中没有涉及任何与jdk1.8.x相关的代码。另外之所以要讲清软件版本,一是为了保证案例能够有个明确的实现背景,二是websocket实现tomcat7.x与tomcat8.x有很大差异。 在JavaEE规范集中我们这里主要看Jav...
webSocket如何部署端点
这是端点:rn@ServerEndpoint("/echo")rnpublic class EchoServer rnrn @OnMessagern public String echo(String incomingMessage )rn return "I got this (" + incomingMessage + ")" rn + " so I am sending it back !";rn rnrn客户端:rnrn rn webSockerTest.htmlrn rn rn rn rn rn rn rn rn rn rn Echo Serverrn rn rn rn rn rn rn rn rn rnrnrnrn请问端点如何发布....
jetty部署websocket实现聊天器功能
    jetty是一个轻量级的可嵌入的web服务器,他对websocket的支持也是非常好的,下面就介绍如何通过jetty服务器的websocket实现聊天室功能: 一、后台实现       后台使用的springMVC,具体的搭建可以看 http://dwj147258.iteye.com/blog/2328962,在这里web.xml文件中需要加入servlet &amp;lt;ser...
java服务端与Android客户端使用 websocket 通信
最近因为项目需要所以得使用 websocket 来进行服务器与客户端的通信。使用java 来实现服务端,Android 实现客户端。 刚开始服务端使用 @ServerEndPoint 注解来实现 Websocket 服务端,但是 Android 使用的是autobahn 实现的客户端,所以一直连接不上,报错为:WebSockets protocol violation 。 后面我把服务端改...
android客户端怎样连接服务器
RT,毕设的项目,客户端的界面和响应基本做好了,服务器端用的是JSP+SERVLET+JDBC,已经实现了对数据库的操作,但是客户端怎么实现登陆,与服务器双向传递数据并通过SERVLET访问数据库?有没有好的参考资料?
tomcat8实现session共享jar包
此压缩包为tomcat8利用redis实现session共享所需要的jar包,包含(commons-pool2-2.6.0.jar、jedis-2.9.0.jar、tomcat-redis-session-manager.jar)直接将三个jar包复制Tomcat目录lib下面,在修改conf下context.xml文件,增加配置: <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="192.168.6.216" port="6379" database="0" password="Test1234Sb" maxInactiveInterval="60" />
centos7 部署tomcat8,jdk7,nginx,防火墙
正式环境部署成功,绝对有用,tomcat8,jdk7,nginx1.11,防火墙设置....
dubbo-admin-2.5.4在Jdk8和Tomcat8下部署失败的解决方案
dubbo-admin-2.5.4在Jdk8和Tomcat8下无法部署 相关原因可以看这里:https://github.com/alibaba/dubbo/issues/50 网上找到了一个被重新编译过的war包,支持Jdk8和Tomcat8 下载地址: http://download.csdn.net/detail/leiyong0326/9548973 http://downl
myeclipse2014部署tomcat8出错,7不出
使用myeclipse2014部署一个项目,部署在tomcat7上就正常,在8上部署,就会报:rnSEVERE: ContainerBase.addChild: start: rnorg.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ecip]]rn at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)rn at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)rn at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)rn at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)rn at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)rn at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1780)rn at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)rn at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)rn at java.util.concurrent.FutureTask.run(FutureTask.java:166)rn at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)rn at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)rn at java.lang.Thread.run(Thread.java:722)rnCaused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletConfig"rn at java.lang.ClassLoader.defineClass1(Native Method)rn at java.lang.ClassLoader.defineClass(ClassLoader.java:791)rn at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)rn at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)rn at java.net.URLClassLoader.access$100(URLClassLoader.java:71)rn at java.net.URLClassLoader$1.run(URLClassLoader.java:361)rn at java.net.URLClassLoader$1.run(URLClassLoader.java:355)rn at java.security.AccessController.doPrivileged(Native Method)rn at java.net.URLClassLoader.findClass(URLClassLoader.java:354)rn at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:894)rn at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1298)rn at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1175)rn at java.lang.Class.getDeclaredMethods0(Native Method)rn at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)rn at java.lang.Class.getDeclaredMethods(Class.java:1810)rn at org.apache.catalina.util.Introspection.getDeclaredMethods(Introspection.java:127)rn at org.apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.java:279)rn at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:141)rn at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:66)rn at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:332)rn at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:771)rn at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:303)rn at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)rn at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)rn at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5058)rn at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)rn ... 11 morern四月 13, 2014 4:01:42 下午 org.apache.catalina.startup.HostConfig deployDirectoryrnSEVERE: Error deploying web application directory D:\Soft\Tomcat8\webapps\eciprnjava.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ecip]]rn at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729)rn at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)rn at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)rn at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1134)rn at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1780)rn at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)rn at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)rn at java.util.concurrent.FutureTask.run(FutureTask.java:166)rn at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)rn at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)rn at java.lang.Thread.run(Thread.java:722)rnrnrnlocalhost:8080可以打开tomcat的管理页面,但是加上路径就打不开项目,显示404
学习部署服务器(2) 安装Tomcat8
1、下载Tomcat8压缩包,地址:http://tomcat.apache.org/download-80.cgi 2、使用xshell的Xftp在opt目录下新建文件夹tomcat,并上传文件到 tomcat中 3、使用xshell 解压文件 到新建的tomcat目录,命令: tar -zxvf apache-tomcat-8.5.42.tar.gz 重命名方便记...
springboot部署到tomcat8中启动过慢的问题
springboot部署到tomcat8中启动过慢的问题 最近新开了一个项目,在搭建架构发布部署的时候,发现项目启动巨慢,竟然要100多秒,太不可思议了,下面我把问题以及解决方案贴出来,以供大家参考: 问题 从图中可以看到org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive 耗...
websocket的实现
websocket的实现是基于jsnode框架实现的功能,他可以完成,服务器推技术。
dubbo管理中心 源码 可以在tomcat8下jdk1.8下部署
dubbo管理中心 源码 可以在tomcat8下jdk1.8下部署,需要用maven进行编译 ,首先dubbo-admin\src\main\webapp\WEB-INF 在这个下面修改dubbo.properties这个文件里面的zookeeper地址然后进入 dobbo-admin/下 运行cmd 执行 mvn package -Dmaven.skip.test=true 命令,前提是maven环境已经配置完毕,执行完毕后会在当前目录出现一个 target文件夹 里面就是想要的war包
tomcat8资源下载链接tomcat8
tomcat8资源下载链接tomcat8tomcat8资源下载链接tomcat8tomcat8资源下载链接tomcat8tomcat8资源下载链接tomcat8
Vue在Tomcat8下部署页面不加载问题
最新的项目刚刚用上Vue,遇到很多问题,在Tomcat下部署时出现了页面空白。 问题:路由 mode history 模式在 dev 模式下没有问题,在 build 模式页面空白,但静态资源能正常引用 原因:部署在Tomcat上时并没有在根目录上,而是放置在了子文件夹下面,router 无法找到路径中的组件,所以也就无法渲染了 解决:修改 router 下 index.js ...
eclipse+maven部署javaweb项目到远程tomcat8服务器
在使用eclipse做javaee开发的时候,我们通常是在eclipse中建立一个tomcat,然后将项目部署到tomcat下,如果部署到远程,我们需要手动将war包部署到远程服务器的tomcat/webapps目录下,tomcat7-maven-plugin插件让我们可以对maven构建的webapp直接部署到远程服务器,而且无需重启tomcat,这里既可以部署到tomcat7,通过同样的方式,...
阿里云centos7.2部署笔录--安装tomcat8(四)
这里记录如何安装tomcat,启动tomcat,查看运行中tomcat日志1,下载tomcat,然后通过ftp将tomcat压缩包传输到云服务器2,解压,新建tomcat目录,剪切到新目录[root@gaocc data]# lltotal 62828-rw-r--r-- 1 gao root  9536557 Jan 26 19:19 apache-tomcat-8.5.27.tar.gz-rw...
tomcat8 部署阿里的dubbo服务治理框架
1、首先启动zookeeper (笔者将zookeeper安装到虚拟机上,并启动它) 启动ookeeper可以使用 telnet 192.168.1.103 2181 测试一下是否可以连接 2、把dubbo部署到tomcat 先重命名tomcat的webapp目录下的ROOT文件夹 下载dubbo并解压出来会有个ROOT文件夹,把这个文件复制到tomcat的webapp目录下,
openfire的Android客户端实现
openfire是xmpp协议的实现,以其及时性和稳定性被倍受青睐,在此贡献出来Android客户端,希望与大家共同探讨。 文章地址:http://blog.csdn.net/sky_monkey/article/details/9495571
android客户端实现模糊查找
客户端实现模糊查找的效果。
MINA android客户端实现
android客户端实现,服务器端实现不能一起上传,所以又传了一份
Android客户端-实现地图查询
Android客户端-实现地图查询;包括地图SQL查询、几何查询、距离查询;
android客户端与部署到tomcat的servlet服务器之间实现http通信
博主目前小白,为了完成这个踩到不少地雷,在此处记录下,可能错误忘记了,以后想起来再更新。服务器端:public class Servlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) thr
Android客户端实现Socket通信
安卓与服务器的通信有两种 Socket与Http。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。 下面给出Socket通信的一个实例 其实很简单 protected v
知乎android客户端启动页实现
知乎 Android 客户端启动页的视差动画效果实现.
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制