在WildFly和OpenShift上的WebSocket聊天

聊天是解释WebSocket的最典型示例之一。 它是一个相当常用的界面,可以很容易地解释WebSocket的基本概念。 当然,Java EE 7 WebSocket也有一个, 在这里可用 ! 您可以使用以下步骤在WildFly上轻松运行它:

curl -O http://download.jboss.org/wildfly/8.1.0.Final/wildfly-8.1.0.Final.zip
unzip wildfly-8.1.0.Final.zip
./wildfly-8.1.0.Final/bin/standalone.sh
git clone https://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples
mvn -f websocket/chat/pom.xml wildfly:deploy

然后访问http:// localhost:8080 / chat / 。

WebSocket的最大优点之一是如何在与HTTP(在本例中为8080)相同的端口上打开套接字。 如果要将此应用程序部署到OpenShift,则可以在端口8000上使用WebSocket进行常规访问,而在端口8443上进行安全访问。 下图对此进行了解释:

openshift-websocket-routing

如果要在OpenShift上运行此聊天应用程序,请使用以下步骤:

  1. 单击此处在OpenShift中配置WildFly实例。 将名称更改为“ chatserver”,并将其他所有名称更改为默认值。 单击“创建应用程序”以创建应用程序。
  2. 克隆工作空间:
    git clone ssh://544f08a850044670df00009e@chatserver-milestogo.rhcloud.com/~/git/chatserver.git/
  3. 从以下位置编辑“ javaee7-samples / websocket / chat / src / main / webapp / websocket.js”的第一行:
    var wsUri = "ws://" + document.location.hostname + ":" + document.location.port + document.location.pathname + "chat";

    至:

    var wsUri = "ws://" + document.location.hostname + ":8000" + document.location.pathname + "chat";
  4. 创建WAR文件:
    cd javaee7-samples
    mvn -f websocket/chat/pom.xml
  5. 将生成的WAR文件复制到先前克隆的工作空间中:
    cd ..
    cp javaee7-samples/websocket/chat/target/chat.war chatserver/deployments/ROOT.war
  6. 删除现有文件并将WAR文件添加到git存储库中:
    cd chatserver
    git rm -rf src pom.xml
    git add deployments/ROOT.war
    git commit . -m"updating files"
    git push

    这将输出显示为:

    Counting objects: 6, done.
    Delta compression using up to 8 threads.
    Compressing objects: 100% (4/4), done.
    Writing objects: 100% (4/4), 6.88 KiB | 0 bytes/s, done.
    Total 4 (delta 1), reused 0 (delta 0)
    remote: Stopping wildfly cart
    remote: Sending SIGTERM to wildfly:285130 ...
    remote: Building git ref 'master', commit 05a7978
    remote: Preparing build for deployment
    remote: Deployment id is 14bcec20
    remote: Activating deployment
    remote: Deploying WildFly
    remote: Starting wildfly cart
    remote: Found 127.2.87.1:8080 listening port
    remote: Found 127.2.87.1:9990 listening port
    remote: /var/lib/openshift/544f08a850044670df00009e/wildfly/standalone/deployments /var/lib/openshift/544f08a850044670df00009e/wildfly
    remote: /var/lib/openshift/544f08a850044670df00009e/wildfly
    remote: CLIENT_MESSAGE: Artifacts deployed: ./ROOT.war
    remote: -------------------------
    remote: Git Post-Receive Result: success
    remote: Activation status: success
    remote: Deployment completed with status: success
    To ssh://544f08a850044670df00009e@chatserver-milestogo.rhcloud.com/~/git/chatserver.git/
    454bba9..05a7978  master -> master

现在,您的聊天服务器位于: http : //chatserver-milestogo.rhcloud.com ,看起来像:

techtip51-websocket-聊天输出

请享用!

翻译自: https://www.javacodegeeks.com/2014/10/websocket-chat-on-wildfly-and-openshift.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

recv, recvfrom, recvmsg

recv,recvfrom,recvmsg函数用于从套接字接收信息。 ssize_t recv (int s, void *buf, size_t len, int flags);ssize_t recvfrom (int s, void * restrict buf, size_t len, int flags, struct sockaddr * restrict from, socklen_t * restrict fromlen);ssize_t recvmsg (int…

[解决]电信彩信网关开发错误-SOAP_VERSIONMISMATCH

上一个文章&#xff1a;[求救]电信彩信网关开发错误&#xff0d;SOAP_VERSIONMISMATCH 说的问题<messageId>SVC0001</messageId> <text>SOAP_VERSIONMISMATCH</text> 已经解决&#xff0c;主要是查看了网上的一个同学的帖子&#xff0c;非常感谢。再来…

Ubuntu20.04纯命令配置PCL(点云库)

Ubuntu20.04纯命令配置PCL&#xff08;点云库&#xff09; 最近在学习点云库&#xff08;PCL&#xff09;的使用&#xff0c;第一步就是在自己的电脑安装配置PCL。 首先&#xff0c;对于ubuntu 16.04以上版本&#xff0c;可以直接使用命令进行安装&#xff0c;新建好一个文件夹…

css html应用实例1:滑动门技术的简单实现

关于滑动门&#xff0c;现在的页面中好多地方都会用到滑动门&#xff0c;一般用作于导航背景&#xff0c;它的官方解释如下&#xff1a; 滑动门&#xff1a;根据文本自适应大小&#xff0c;根据背景的层叠性制作&#xff0c;并允许他们在彼此之上进行滑动&#xff0c;以创造出…

魔戒1

转载于:https://www.cnblogs.com/moonlightpeng/p/11240880.html

得到python默认的帮助文档

python的help文档很好&#xff0c;就是有时候help一下给出好几页来&#xff0c;甚至有些帮助根本就看不到了(我想应该有其他方法可以解决&#xff0c;只是我不想去查了)&#xff0c;因为这个可以通过一个很简单的python脚本搞定。这里举例为证&#xff0c;比如我想得到Tkinter的…

如何在Java中将图像上传到DropBox

本教程介绍了如何将图像上传到放置框并获取上传图像的公共URL。 首先&#xff0c;我们必须使用应用程序控制台创建一个DropBox API应用程序 。 创建应用程序后&#xff0c;您可以在应用程序属性中获取应用程序密钥和秘密密钥。 现在在您的pom文件中添加以下依赖项。 <dep…

css3动画整理

css3动画主要常用的属性有 变形&#xff08;transform&#xff09;&#xff0c;转换&#xff08;transition&#xff09;&#xff0c;动画&#xff08;animation&#xff09;三种。 变形&#xff08;transform&#xff09;主要有以下几种方式&#xff1a; 旋转rotate&#xff1…

jQuery应用实例2:简单动画

效果&#xff1a; 代码&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <html xmlns"http://www.w3.org/1999/xhtml">3 <head>…

程序员成熟的标志

程序员在经历了若干年编程工作之后&#xff0c;很想知道自己水平到底如何&#xff1f;自己是否已经成为成熟的程序员&#xff1f;虽然程序员会对自己有一个自我评价&#xff0c;但是&#xff0c;自己的评价和社会的评价、专业的评价会有差异&#xff0c;所以程序员自己并不能肯…

Spring Data JPA教程:简介

创建使用Java Persistence API的存储库是一个繁琐的过程&#xff0c;需要大量时间&#xff0c;并且需要大量样板代码。 通过执行以下步骤&#xff0c;我们可以消除一些样板代码&#xff1a; 创建一个抽象的基础存储库类&#xff0c;该类为实体提供CRUD操作。 创建扩展抽象基础…

深入了解React组件重新渲染的条件和生命周期

React组件rerender的真正条件 当前组件的State中的属性改变时且当前组件的shouldcomponentupdate返回true&#xff0c;那么当前组件会rerender组件的props中的任一属性的值有变化(即使这个任一属性的值是对象&#xff0c;变化的仅仅是该对象中的某属性的值&#xff0c;此刻也算…

对怀孕的人有害的食物。。。朋友们记住咯!(欢迎转载)

有几个同事和朋友要生BB啦&#xff0c;好东东&#xff0c;转给你们提前学习一下~ 容易流产食物&#xff1a; 1、螃蟹&#xff1a;它味道鲜美&#xff0c;但其性寒凉&#xff0c;有活血祛瘀之功&#xff0c;故对孕妇不利&#xff0c;尤其是蟹爪&#xff0c;有明显的堕胎作用。 2…

Vss服务端用户存在,但客户端登陆不进去

打开客户端Vss提示“Cannot find SS.INI file for user userName”,这个错误是找不到用户userName的SS.INI文件。 解决办法 在服务器上找到Vss共享的文件夹&#xff0c;打开此文件夹下的users文件夹&#xff0c;然后找到userName文件夹打开后&#xff1a; 如果没有SS.INI文件&a…

Hystrix中的批量(折叠)请求

Hystrix具有折叠&#xff08;或批处理&#xff09;请求的高级功能。 如果两个或多个命令同时运行相似的请求&#xff0c;Hystrix可以将它们组合在一起&#xff0c;运行一个批处理请求&#xff0c;并将拆分结果分派回所有命令。 首先让我们看看Hystrix如何工作而不会崩溃。 假设…

C#繁简转换

//1.using System.Runtime.InteropServices; //2.import kernel32.dll [DllImport("kernel32.dll",EntryPoint "LCMapStringA")]    public static extern int LCMapString(int Locale,int dwMapFlags,byte[] lpSrcStr,int cchSrc,byte[] lpDestStr,…

css笔记 2

定义一个类选择器.center {text-align: center} h1 有 center 类。这意味将遵守 ".center" 选择器中的规则。<h1 class"center">This heading will be center-aligned</h1> 类名的第一个字符不能使用数字&#xff01; 派生选择器td.fancy {…

合并购物车

合并购物车逻辑分析 合并方向&#xff1a;cookie 购物车数据合并到 Redis 购物车数据中。合并数据&#xff1a;购物车商品数据和勾选状态。合并方案&#xff1a; Redis 数据库中的购物车数据保留。如果 cookie 中的购物车数据在 Redis 数据库中已存在 将 cookie 购物车数据覆盖…

Swing和JavaFX:使用JFXPanel

我很快将不得不在基于Swing的胖客户端中处理JavaFX –哦&#xff0c;对不起&#xff0c;我的意思是“多层富客户端”&#xff01; 因此&#xff0c;这使我来看看JFXPanel 。 JFXPanel是一个javax.swing.JComponent&#xff0c;用于将JavaFX内容嵌入到Swing-UI中。 JFXPanel的用…

关于nodejs中npm命令没有反应的解决方法

最近在学习angularJS&#xff0c;正在做一个单页面应用&#xff0c;在安装nodejs之后&#xff0c;发现命令行传了输入npm -v能输出结果外&#xff0c;其余npm的任何操作都没有反应&#xff0c;一开始我以为是下载的比较慢&#xff0c;等了半小时还是没动静&#xff0c;只有下标…