/cat

在线网页视频聊天

Primary LanguageJava

cat

2020年04月13日09:52:11 已经收到过很多在校大学生询问怎么使用,鉴于他们对很多东西不了解,所以我在这里面说一下怎么弄 1.这是个maven项目,你必须先安装maven然后配置maven的环境变量 2.下载源码压缩包 cat-master.zip 解压后进入 找到web.xml文件打开,注释或删除掉web-app这个标签内的内容,这个内容主要是使用tomcat部署https协议的时候进行的http自动跳转到https,如果你是本地使用就要注释掉,如果是服务器,就别注释了 3.Windows,或者mac随便你什么系统使用命令,注意Windows的cmd,mac的终端,进入cat-master这个文件夹,在有pom.xml这个文件的目录位置,然后输入命令 mvn package 4.命令是进行编译打包源码,之后再cat-master文件夹下就能看见一个target文件夹,进入target文件夹后,能看到cat.war这个包 5.在网上下载tomcat8,然后将cat.war 的移动到tomcat8中的webapps目录 6.进入tomcat8的bin目录启动tomcat 7.在浏览器输入地址 http://127.0.0.1:8080/cat/index.jsp 就能进入页面进行体验了 8.注意要求,webrtc据我前几年查到的资料,使用谷歌浏览器进行体验,其它的浏览器我不确定是否都兼容了,只能是127.0.0.1地址可以使用http,其它地址都是只能用https协议,https协议怎么弄,这里涉及到申请域名,和申请证书,不在这里面说了

如果你们希望这个项目用nginx代理https 那就把web.xml中的内容删掉,如果是用tomcat部署https协议就不用删除. 2019年03月13日10:39:12 今天提交更新是以前webrtc老api不可以使用了,换成了新api, 源码地址:https://github.com/js1688/cat08

网页视频聊天室学习 webrtc 非本地使用的话需要的东西比较多, webrtc 与 java 没有关系,这里选择java做信令服务器,只是一种方式,可以用其他语言代替,网上的例子nodejs例子比较多, webrct 使用注意事项,以下一些原因会导致webrtc不能正常执行 1.首先需要浏览器支持webrtc,浏览器尽量升级到最新的版本 2.其他浏览器我不知道,谷歌浏览器的要求是,只能事127.0.0.1地址 或者 是https协议地址 运行webrtc 搜索网上其他例子会把一些其他代码混淆在一起,webrtc 只是调用浏览器内置的api,我这个代码中使用的websocket只是用来连接信令服务器,与webrtc没有关系.

2018年2月9日 17:23:23 提交内容 1.一对一对话 2.一对一文件传输

2018年3月1日 16:32:41 提交内容 1.稍微优化了一下代码的可读性 2.修复一些一对一已知的BUG 3.增加五人群组对话功能 4.五人群组文件发送 备注:由于之前没有做过这方面的经验,特意去查了一下资料 http://blog.csdn.net/gupar/article/details/53101435 这篇文章中提到了几种解决方案,以我目前的了解webrtc还是不适合做多对多的聊天,或许是我对webrtc了解的不够,这里选择的事mesh解决方案,好像webrtc只能使用这个解决方案,阅读的这篇文章还是给我提供了不少灵感,另外我在做多对多的时候碰到了一个问题 websocket发送消息时 出现 TEXT_FULL_WRITING异常,我搜索了一些资料,有的说 OnMessage 方法不要设置返回值,这只是导致这个愿意的一种,如果你给OnMessage方法设置了返回值,就把它改成void的吧,然而我并没有设置返回值,导致这个问题的原因是,相同的session中上一次发送的数据还未发送完毕,然后再次发送就会导致这个异常,然后我检查了一下 tomcat 提供的websocket服务,它默认是异步多实例模式,意思是每次有请求到后台 都是一个新的服务实例,那这个问题的根本就是多线程发送数据导致的,我暂时想到的办法是,使用 getAsyncRemote 接口发送消息,它有一个返回,这个返回对象isDone 方法为true的时候则代表它上一次发送完毕,所以我每次使用某个session对象的时候都会去检查它,具体实现在 MessageSendLockStorage 类中,这个我记录下来了,因为我百度了一下,我们国内的资料上并没有太多的解决答案,我去查了英文资料给我的灵感,我觉得这不是一个好方法,因为它会影响性能,但是它看起来是解决了这个问题,另外我自己本机测试的时候最多开3个摄像头聊天,然后cpu就爆满了,没办法单独测试五人同时视频聊天,我预感它可能还有问题.

2018年7月19日 问题记录

我做这个起初的想法只是想试试webrtc,并不会考虑兼容性,只要固定的条件上能运行就可以了,在其他浏览器是运行不起来的,起初在开发的时候 windows + tomcat8.0+谷歌浏览器 一对一能很稳定的运行,多人聊天开多了窗口会有某些窗口掉socket的情况,以及cpu占用率暴涨。

近期有人跟我反馈打开第二个窗口时与第一个窗口建立了视频聊天后会导致发起方断开websocket,我自己测试了一下确实有这个情况。

我目前的测试环境我mac + tomcat + 谷歌浏览器, 如果是使用我服务器上的地址测试应当使用 谷歌浏览器去访问,目前我也是只管谷歌浏览器,其他浏览器肯定是有兼容问题的,现在主要的问题是为什么会莫名的掉websocket连接的问题。

后期有空的时候我会自己用两台机器再次修改代码调试一下,还是打算只支持 tomcat + 谷歌浏览器,并不会考虑其他浏览器,因为我比较讨厌做前端。

再提一下,我与另一个远程机器在做调试的时候 对方是没有麦克风 摄像头等设备等,结果是发起聊天后根本不创建webrtc连接。 总之有空的时候我回去看一下这些问题,我也是要工作的,不会立即去解决它。

2018年7月23日 解决问题记录

  1. 修复了 打开第二个聊天摄像头引起等socket断开的bug
  2. 修复了 一些bug
  3. 增加了回车发送文字内容
  4. 经测试 一对一对话,群组对话结果较为稳定,ps 没想到我的mac 竟然可以开五个聊天框,原来的windows电脑开三个就开始很卡了。
  5. 以前开发的时候因为webrtc关不掉摄像头调用的问题查了资料,后面在windoes下能关掉摄像头了,但是在mac下摄像头的灯依然无法彻底关闭,这个问题暂时无法解决。

2018年12月18日18:09:58 没有解决任何问题 2.这个小东西不再维护了.代码比较乱,当时起步没有做好. 3.等 猫8 做了用户系统后 再把这个网页聊天移植过去.