NearByChat:附近的人聊天demo
- N6_128231了解作者
- 360.3KB文件大小
- zip文件格式
- 0收藏次数
- VIP专享资源类型
- 0下载次数
- 2022-06-13 05:58上传日期
最近想做一个聊天的app软件,凑巧在社区上看到这个demo,地址
于是想模仿一下,发现在国内用不了,可能用法不对还是什么的
于是就想修改一下,基于位置的聊天应用。
位置保存的信息是GeoHash,引用了
与服务器通信方式采用socket长连接(心跳),参考大佬Socket demo,地址
运行Socket demo发现,client在发送消息的时候会出现android.os.NetworkOnMainThreadException,究其原因是作者处理发送消息的时候,在主线程中执行了Socket IO 操作,这个Exception在android6.0的时候,google没有进行处理,也就是说Socket demo在android6.0的手机上可以运行,7.0则不行。在android7.0的时候得到改正。所以这里的处理方法就是把发送消息那里的IO操作放到了一个简单的子线程中处理。
次

NearByChat-master.zip
内容介绍
最近想做一个聊天的app软件,凑巧在社区上看到这个demo,地址https://github.com/EzraLopez/nearbychat
于是想模仿一下,发现在国内用不了,可能用法不对还是什么的
于是就想修改一下,基于位置的聊天应用。
位置保存的信息是GeoHash,引用了https://github.com/drfonfon/android-geohash
与服务器通信方式采用socket长连接(心跳),参考大佬Socket demo,地址 https://github.com/HouBin506/SocketPushClient
运行Socket demo发现,client在发送消息的时候会出现android.os.NetworkOnMainThreadException,究其原因是作者处理发送消息的时候,在主线程中执行了Socket IO 操作,这个Exception在android6.0的时候,google没有进行处理,也就是说Socket demo在android6.0的手机上可以运行,7.0则不行。在android7.0的时候得到改正。所以这里的处理方法就是把发送消息那里的IO操作放到了一个简单的子线程中处理。
次日,正式放弃上述Socket demo(2018-05-19)
基于枚杉博客 https://blog.csdn.net/u010818425/article/details/53448817 实现socket的长连接(心跳)(2018-05-24),在他的博客中的代码,由于在根据收到消息解析成不同的Protocol的时候,需要根据工程中的路径进行类加载,所以如果是自己实现的话,就需要自己修改SocketUtil类中加载类的路径。而在本Android studio的demo中,直接引用livesocket模块的话,客户端的加载类路径则不需要修改,可以直接使用。谨记客户端和服务端的SocketUtil中的加载类路径都可能需要修改。
2018-05-24
将socket网络连接放进了Service,并且在登陆的Activity中通过startService的方式启动Service,经实践,发现手动kill程序的时候,Service会自行重启,即原有的socket连接会断开,然后socket跟随Service的重启自动连接,就是两个socket不是同一个。
2018-05-27
第一次完成采用长连接的方式向附近的人推送消息

目前需要实现的功能和优化的目标
-------
* 客户端和服务端超时收不到心跳后主动断开连接,客户端重连
* ~~当Socket断开连接后,服务端删除广播列表中相应的连接~~
* ~~客户端可以选择收到附近广播的范围~~
* 解决GEOHASH的边界问题
###### 2018-07-15
-----------------
* Server采用计时器结合心跳策略判断socket是否连接,断开连接则回收该socket。
* Client获取位置任务逻辑改变,从Service中提取到登陆页面中,只有获取到位置信息才能登陆。
* Client登陆后可以选择广播的距离(根据GeoHash匹配程度)。
* Client获取消息Socket仍然在Service。
评论



相关推荐
- .net远程登录服务器代码整理个人整理.net远程登录服务器代码 里面包含需要引用的DLL和开发的实例 以及当时遇到的问题
- ASP.NET 服务器 .NET写的 源代码ASP.NET 服务器 .NET写的 源代码 把网站的那个文件夹拖进文本框就可以浏览网页了
- 服务器.NET微型服务器优化版.NET微型服务器优化 74KB为需要.net环境
- ASP.NET服务器.NET初学者可以用这个服务器,傻瓜式的安装方式。 先运行start.exe,然后就会了~~~ WebServer.exe是从Microsoft WebMatrix中提取出来的,需要先安装.net framework。
- .net模拟IIS服务器.net 模拟 IIS 服务器
- .net模拟IIS服务器.net模拟IIS服务器
- .net 自制迷你服务器一个可以运行在.NET环境下,构建简单快捷的服务器环境的 开源服务器
- .net 跨服务器传图.net 跨服务器传图 即两个网站互相上传图片(或者其他文件) 只要将default.aspx和ashx分别放到两个网站就行,记得该路径
- 非常好用的.NET验证码服务器控件非常好用的.NET验证码服务器控件SuperAuthenticationCode (2.0.1.0),标准版、特殊版、中文文档一应俱全。
- 相当于.net的服务器aspmao相当于.net的一个服务器,这样就可以不装IIS就可以运行程序,很不错的选择哦!
最新资源