在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例WEB/WAP应用开发 → websocket实现简易聊天室

websocket实现简易聊天室

WEB/WAP应用开发

下载此实例
  • 开发语言:Java
  • 实例大小:7.67M
  • 下载次数:60
  • 浏览次数:455
  • 发布时间:2019-05-22
  • 实例类别:WEB/WAP应用开发
  • 发 布 人:2053417251
  • 文件格式:.zip
  • 所需积分:2
 相关标签: Socket 聊天 web

实例介绍

【实例简介】

用websocket开发的简易聊天室,并可以发送表情和超链接.

【实例截图】

from clipboard

【核心代码】

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() "://" request.getServerName() ":" request.getServerPort() path "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta charset="UTF-8">
  <title>JSD1902-聊天室</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport"
        content="width=device-width, initial-scale=1">
  <meta name="format-detection" content="telephone=no">
  <meta name="renderer" content="webkit">
  <meta http-equiv="Cache-Control" content="no-siteapp"/>
  <link rel="alternate icon" type="image/png" href="assets/i/favicon.png">
  <link rel="stylesheet" href="assets/css/amazeui.min.css"/>
  
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/amazeui.min.js"></script>
<!-- UM相关资源 -->
<link href="assets/umeditor/themes/default/css/umeditor.css" type="text/css" rel="stylesheet">
<script type="text/javascript" charset="utf-8" src="assets/umeditor/umeditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="assets/umeditor/umeditor.min.js"></script>
<script type="text/javascript" src="assets/umeditor/lang/zh-cn/zh-cn.js"></script>
</head>
<body>
<header class="am-topbar am-topbar-fixed-top">
  <div class="am-container">
    <h1 class="am-topbar-brand">
      <a href="#">聊天室</a>
    </h1>
    <div class="am-collapse am-topbar-collapse" id="collapse-head">
      <ul class="am-nav am-nav-pills am-topbar-nav">
        <li class="am-active"><a href="#">首页</a></li>
      </ul>

      <div class="am-topbar-right">
        <button class="am-btn am-btn-secondary am-topbar-btn am-btn-sm"><span class="am-icon-pencil"></span> 注册</button>
      </div>
  
<div class="am-topbar-right">
        <input><span class="am-icon-pencil"></span> 注册</input>
      </div>
  
      <div class="am-topbar-right">
        <button class="am-btn am-btn-primary am-topbar-btn am-btn-sm"><span class="am-icon-user"></span> 登录</button>
      </div>
    </div>
  </div>
</header>

<div id="main">
<!-- 聊天内容展示区域 -->
<div id="ChatBox" class="am-g am-g-fixed" >
  <div class="am-u-lg-12" style="height:400px;border:1px solid #999;overflow-y:scroll;">
<ul id="chatContent" class="am-comments-list am-comments-list-flip">
<li id="msgtmp" class="am-comment" style="display:none;">
    <a href="">
        <img class="am-comment-avatar" src="assets/images/other.jpg" alt=""/>
    </a>
    <div class="am-comment-main" >
        <header class="am-comment-hd">
            <div class="am-comment-meta">
              <a ff="nickname" href="#link-to-user" class="am-comment-author">某人</a>
              <time ff="msgdate" datetime="" title="">2014-7-12 15:30</time>
            </div>
        </header>
     <div ff="content" class="am-comment-bd">此处是消息内容</div>
    </div>
</li>
</ul>
  </div>
</div>
<!-- 聊天内容发送区域 -->
<div id="EditBox" class="am-g am-g-fixed">
<!--style给定宽度可以影响编辑器的最终宽度-->
<script type="text/plain" id="myEditor" style="width:100%;height:140px;"></script>
<button id="send" type="button" class="am-btn am-btn-primary am-btn-block">发送</button>
</div>
  
</div>
<script type="text/javascript">
$(document).ready(function(){ 
alert("您好,欢迎来到Jquery!"); 
}) 

$(function(){


//实例化编辑器
    var um = UM.getEditor('myEditor',{
    initialContent:"请输入聊天信息...",
    autoHeightEnabled:false,
    toolbar:[
            'source | undo redo | bold italic underline strikethrough | superscript subscript | forecolor backcolor | removeformat |',
            'insertorderedlist insertunorderedlist | selectall cleardoc paragraph | fontfamily fontsize' ,
            '| justifyleft justifycenter justifyright justifyjustify |',
            'link unlink | emotion image video  | map'
        ]
    });
    
    
    var nickname = "达内" Math.random();
var socket = new WebSocket("ws://${pageContext.request.getServerName()}:${pageContext.request.getServerPort()}${pageContext.request.contextPath}/websocket");
    //接收服务器的消息
    socket.onmessage=function(ev){
    var obj = eval(   '(' ev.data ')'   );
    addMessage(obj);
    }
    
    $("#send").click(function(){
    if (!um.hasContents()) {  // 判断消息输入框是否为空
            // 消息输入框获取焦点
            um.focus();
            // 添加抖动效果
            $('.edui-container').addClass('am-animation-shake');
            setTimeout("$('.edui-container').removeClass('am-animation-shake')", 1000);
        } else {
        //获取输入框的内容
        var txt = um.getContent();
        //构建一个标准格式的JSON对象
        var obj = JSON.stringify({
    nickname:nickname,
    content:txt
    });
            // 发送消息
            socket.send(obj);
            // 清空消息输入框
            um.setContent('');
            // 消息输入框获取焦点
            um.focus();
        }
    
    });
    
    
    
    
    
});

//人名nickname,时间date,是否自己isSelf,内容content
function addMessage(msg){

var box = $("#msgtmp").clone(); //复制一份模板,取名为box
box.show(); //设置box状态为显示
box.appendTo("#chatContent"); //把box追加到聊天面板中
box.find('[ff="nickname"]').html(msg.nickname); //在box中设置昵称
box.find('[ff="msgdate"]').html(msg.date); //在box中设置时间
box.find('[ff="content"]').html(msg.content); //在box中设置内容
box.addClass(msg.isSelf? 'am-comment-flip':''); //右侧显示
box.addClass(msg.isSelf? 'am-comment-warning':'am-comment-success');//颜色
box.css((msg.isSelf? 'margin-left':'margin-right'),"20%");//外边距

$("#ChatBox div:eq(0)").scrollTop(999999); //滚动条移动至最底部

}


</script>

</body>
</html>


标签: Socket 聊天 web

实例下载地址

websocket实现简易聊天室

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警