js作为websocket client,服务用java 点对点、一对多聊天

今天就分享前端的websokcet处理

websocket处理就是一个客服端和服务端之间的长连接

聊天室

#message {

margin-top: 20px;

border: 1px solid gray;

padding: 20px;

}

昵称:

连接WebSocket

断开连接

消息:

频道号

发送消息

//连接对象.

var websocke = null;

var nickname = null;

var uid = null;

function conectWebSocket() {

nickname = document.getElementById("nickname").value;

if (nickname == '') {

alert("请输入昵称");

return;

}

//判断当前的浏览器是否支持websocket.

if ("WebSocket" in window) {

uid = "sdaaaaaaaaaaaaaaaaaaaaaaaaa";

websocket = new WebSocket("ws://localhost:8080/websocket/" + nickname + "/" + uid);

} else {

alert("Not support websocket");

return false;

}

//连接成功的方法.

websocket.onopen = function(event) {

setMessgeHtml("Loc MSG:已连接");

}

//连接关闭.

websocket.onclose = function(event) {

// aler

setMessgeHtml("Loc MSG:连接关闭");

}

//连接异常.

websocket.onerror = function(event) {

setMessgeHtml("Loc MSG:连接异常");

}

websocket.onmessage = function(event) {

console.log("fallback :", event);

setMessgeHtml(event.data);

}

} //conectWebSocket

var single = (function() {

return {

getInstance: function() {

if (websocke != null && websocke.readyState == 1) {

console.log("wlx-------------------" + websocke.readyState)

setMessgeHtml("Loc MSG:不能重复连接!");

return websocke

} else {

websocket = null

nickname = document.getElementById("nickname").value;

if (nickname == '') {

alert("请输入昵称");

return;

}

//判断当前的浏览器是否支持websocket.

if ("WebSocket" in window) {

uid = "sdaaaaaaaaaaaaaaaaaaaaaaaaa";

websocket = new WebSocket("ws://localhost:8080/websocket/" + nickname + "/" + uid);

} else {

alert("Not support websocket");

return false;

}

//连接成功的方法.

websocket.onopen = function(event) {

setMessgeHtml("Loc MSG:已连接");

}

//连接关闭.

websocket.onclose = function(event) {

// aler

setMessgeHtml("Loc MSG:连接关闭");

}

//连接异常.

websocket.onerror = function(event) {

setMessgeHtml("Loc MSG:连接异常");

}

websocket.onmessage = function(event) {

console.log("fallback :", event);

setMessgeHtml(event.data);

}

return websocket;

} //conectWebSocket

}

}

})();

function initws() {

websocke = single.getInstance()

}

function setMessgeHtml(msg) {

var message = document.getElementById("message");

message.innerHTML += msg + "
";

}

function closeWebSocket() {

websocke.close();

}

/**

发送消息.

*/

function send() {

var message = document.getElementById("text").value;

var toUser = document.getElementById("toUser").value;

var socketMsg = {

msg: message,

toUser: toUser

};

if (toUser == '') {

socketMsg.type = 0; //群聊.

} else {

socketMsg.type = 1; //单聊.

}

console.log("发送的是:", socketMsg);

console.log("连接状态:", websocke.readyState);

//websocket.send(nickname+":"+message);

websocke.send(JSON.stringify(socketMsg)); //将json对象转换为json字符串.

}

websocket 要使用js单例模式,避免点击一个连接的在发送消息的时候会收到两个一样的文件

ps: 服务端代码有需求未完善,稍后分享

java 一对多 socket_js作为websocket client,服务用java 点对点、一对多聊天相关推荐

  1. js作为websocket client,服务用java 点对点、一对多聊天

    js作为websocket client,服务用java 点对点.一对多聊天 今天就分享前端的websokcet处理 websocket处理就是一个客服端和服务端之间的长连接 <!DOCTYPE ...

  2. android java websocket client_websocket服务端,android客户端示例

    服务端库依赖详见章末 #####spring websocket服务端代码(会话过程) public class HandshakeInterceptor extends HttpSessionHan ...

  3. java websocket client,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  4. java websocket 实现_JAVA (Tomcat服务器)使用WebSocket实现服务端与HTML前端通信

    在一个项目中要使用WebSocket技术来实现服务器与浏览器实时通信交互,在网上也找了许多资料.为了防止以后忘记具体的使用过程,下面我把自己的使用过程和方法记录下来方便自己以后使用. 项目背景: 基于 ...

  5. springboot+websocket实现服务端、客户端

    一.引言 小编最近一直在使用springboot框架开发项目,毕竟现在很多公司都在采用此框架,之后小编也会陆续写关于springboot开发常用功能的文章. 什么场景下会要使用到websocket的呢 ...

  6. java js websocket_java js实现Websocket通讯实例

    本文主要介绍如何使用java实现websocket server,以及使用java.js生成websocket client进行通讯交互 1.java所需jar包 javax.websocket ja ...

  7. ssm配置socket_ssm框架中集成websocket实现服务端主动向客户端发送消息

    找了很多配置文档及实例说明,也还是没能成功,最终在csdn博客中发现了基于stomp的消息推送的文章, 下面整理自csdn博客,https://blog.csdn.net/u013627689/art ...

  8. ssl java 客户端_Java SSL生成客户端和服务端crt文件

    简述: SSL(百度百科) Secure Socket Layer 安全套接层, 是为网络通信提供安全以及数据完整性的一种安全协议,在传输层对网络连接进行加密 SSL协议分为两层: 1)SSL记录协议 ...

  9. 使用HTML5的WebSocket实现服务端和客户端数据通信(有演示和源码)

    WebSocket协议是基于TCP的一种新的网络协议.WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术.依靠这种技术可以实现客户端和服务器端的长连接,双向实时通信. ...

最新文章

  1. 前后端分离的接口规范
  2. 由浅入深CIL系列【目录索引】+ PostSharp AOP编程【目录索引】
  3. 使用memcache缓存
  4. imgkit分辨率_pythonhtml2image: imgkit 和 wkhtmltoimage的坑
  5. threadlocal存连接对象的目的_终于懂了ThreadLocal,不再害怕面试官问了
  6. 计算机视觉论文-2021-06-18
  7. 项目经验少的怎么社招_想创业,但资金少,不知如何找项目?看看这些经验,你就知道了...
  8. 十六进制高低位转换,返回十进制数
  9. java 栈泛型_使用泛型实现栈结构
  10. 数据库之间的远程操作
  11. 有趣的JavaScript数组
  12. android mvp快速创建,学习MVPArms历程之Android Studio快速创建ArmsComponent组件化项目
  13. QT设置选中的文字加下划线
  14. 冷山的博客思听书摘索引页
  15. 那些值得借鉴的的国外创意404错误页面设计
  16. 【金三银四】一个问题就知道你会不会CSS了
  17. word文档保存的时候,就会出现“文件许可权错误,word 无法完成保存文件”的提示
  18. Git关联多个远程仓库
  19. PTA 数据结构与算法 7-29 修理牧场
  20. 为什么交叉熵可以用来当损失?与MMD的区别?

热门文章

  1. 企业即时通讯设计理念及实现代码
  2. 通过怒气系统的hongjin2
  3. 精品书籍-go go go
  4. 程序员是如何评价“双十一”的?
  5. 怎么样才能学好java_单人拉丁舞应该怎么样才能学好?初学者需要做到的4点要求...
  6. python with open 循环建立指定名字文件_Python基础——文件
  7. githup用户名密码怎么看_MacBook Pro 开机密码忘记解决方法
  8. PDX模型不靠谱,土豪来发resource;细菌帮助癌转移,诺奖发现被推翻
  9. 圣诞素材ae模板-圣诞节日聚会派对视频素材ae模板
  10. java面试 泛型_Java面试题五:Java 的泛型, super T 和 extends T 的区别