2881099 / freeim Goto Github PK
View Code? Open in Web Editor NEW.NETCore websocket 实现简易、高性能、集群即时通讯组件,支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性功能.
License: MIT License
.NETCore websocket 实现简易、高性能、集群即时通讯组件,支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性功能.
License: MIT License
配置imserver,我用的是域名,一个二级域名,比如:我发布imserver,配置的域名是server.xxx.com:6001,web的域名是im.xxx.com,然后就没有消息响应是怎么回事呢?
IMServer怎么部署需要怎么部署呢? 部署到 IIS 还是以服务方式运行, 怎么弄好点呢?
请求增加wss协议的配置
"ImServerOption": {
"CSRedisClient": "118.25.209.177:26379,poolsize=5",
"Servers": "127.0.0.1:6001;127.0.0.1:6002",
"Server": "127.0.0.1:6001"
},
比如说我发布到 18.123.123.11 这个server 上。 "Servers": "127.0.0.1:6001;127.0.0.1:6002",
"Server": "127.0.0.1:6001" 这两个配置文件要改成 18.123.123.11:6001,18.123.123.11:6002吗?
index.html:66 WebSocket connection to 'ws://localhost:6001/ws?token=0279190161e143a690e949922cae5d3ea3b6d111c1ea4cc6aab00135502f47b1f6b6e20cc16e4745bcb146fc7a00a0228b6bef0dcb264f7898b63149deaa172e' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
index.html:89 websocket error
index.html:72 websocket disconnect
index.html:76 Uncaught ReferenceError: chan is not defined
at index.html:76
视频通话如何接入?
1.为什么SignalR不适合做im
我觉得主要的原因是能耗。很多协议不适合做im,除开兼容性问题之外,最主要的原因就是能耗。因为im需要保持长连接,耗电。
2.关于API群发
如果群发1000人,需要创建1000条消息吗?
这个分三种情况:
(1)群组消息
同一群组就订阅同一个Topic,消息就一条,但是推送至用户端还是需要1000次,别无他法。
(2)一类人(Tag相同)
可以借鉴群组的做法。
(3)真的就是无关联的1000人。
那只能创建1000条消息一一推送了。
以上是我的拙见,如有不对,请高手指正。
大神,看到服务端转发消息的时候有个消息回执的功能,请问对于服务端来说,如何确定当前的消息发给了Receive端,且被Receive接收到了呢
现在有个webapi nancy 的项目 .net 4.5,想把这个项目用在上面,如何使用呢?这问题问的我自己都不好意思,拜托有空指点一下,谢谢!
日志是这样的:
fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
System.TimeoutException: SafeObjectPool.Get 获取超时(10秒)。
at SafeObjectPool.ObjectPool`1.Get(Nullable`1 timeout)
at CSRedis.CSRedisClient.GetAndExecute[T](RedisClientPool pool, Func`2 handler, Int32 jump, Int32 errtimes)
at CSRedis.CSRedisClient.ExecuteScalar[T](String key, Func`3 hander)
at CSRedis.CSRedisClient.HKeys(String key)
at ImClient.GetChanListByClientId(Guid clientId) in D:\code\TT\001_src\im\ImCore\ImClient.cs:line 256
at ImServer.Acceptor(HttpContext context, Func`1 next) in D:\code\TT\001_src\im\ImCore\ImServer.cs:line 116
at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
是什么问题?
上下线在 ImHelper.EventBus 获取到事件,上线的时候还可以用 ImHelper.SendMessage(t.clientId, onlineUids, $"用户{t.clientId}上线了");
通知到在线客户端,
但是下线了,API 端怎么通知到在线客户端呢? ImHelper.SendMessage 有没有提供从服务器端发送的呢?
ClientWebSocket client = new ClientWebSocket();
client.ConnectAsync(new Uri("ws://127.0.0.1:6001/ws?token=f5e2fdf65e5c4a1f9fc677c8a3e6b99ccd35347169084455a33d01af3fc350ba728e58799bc6434e8c3b9e82b206eddaa4a88d85150b4315856a5e6ecfd3543a"), CancellationToken.None).Wait() ;
联不上。不知道什么原因,求大佬 指点
大神,网络斗d主不见了,有新地址吗
部署在IIS上一分钟就断开了,只能在重新连接;是IIS配置的问题还是本身就存在?断开的时间可以调吗
如题。。想升级成最高版本的redis,不知道支持不?
这个im支持发布在windows server 2016上吗?
目前看到是ws 的,如果单独部署imserver , 如何配置证书呢?示例代码中不支持下图参数
网络图片
期待回复,谢谢!
就想再API端踢人下线。
Android 当APP 运行再后台的时候网络会断开。当APP 运行到前台来的时候怎么自动重连
老大求解
似乎是因为im服务器意外停止(或者其他原因),客户端下线之后,server未能在online表删除对应记录,
重启Im服务器之后,出现很多假的在线用户,本想设置15s过期时间,然后用心跳不断延长过期来解决,
可online表无法单独设置每个clientId的过期时间
能否设计一个妥善的处理机制?
redis我设置了密码,我要在配置在哪里?现在报错IM无法使用
"ImServerOption": {
"CSRedisClient": "127.0.0.1:6379,idleTimeout=3000,poolsize=10",
"Servers": "127.0.0.1:6001",
"Server": "127.0.0.1:6001"
},
发布成web项目?
Exe文件?
Dll然后部署成服务?
看您写的可以发布成多个站点以支持高并发,是部署成web项目然后在IIS下运行么?
我在用Imcore做服务器端的时候,app端这边,如果是刚开始运行,能正常连接,但如果在app里面切换账号,然后就要重新换token连接,并且能够连上去,但过一会儿就关闭了。
怎么让支持wss协议呢 我这边配置了后收不到消息了
我有两个应用一个使用http 一个使用https 两个应用的用户socketId相同
http使用ws, https 方式连接wss,两个应用都可以正常连接imServer
http一切正常,
当使用https的应用时,连接服务器正常,就是收不到消息
此时,同时把http的应用浏览器打开并连接im,https的应用就可以正常收到消息了;如果把http应用连接关闭,就收不到消息
这是什么原因?期待回复
您好,我想利用FreeIM作为游戏大厅服务器,公告,匹配(创建房间,加入房间,搜索房间等),好友,聊天等功能
查了资料如果不指定端口,这里默认显示5000,原来是MS搞的
Originally posted by @loryrichie in #29 (comment)
这位大哥,这个是什么问题呢?我也是出现这个情况了,我服务器是windows server 2012R2的
在项目里打开本地调试,是正常的,可以正确使用。
但是发布了IMServe到本地之后,在我本地直接运行打开,端口死活是5000和50001
那么IMServer的appsettings.json配置的地址参数配置了还有用吗?
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
"ImServerOption": {
"RedisClient": "127.0.0.1:6379,poolsize=10",
"Servers": "127.0.0.1:6001",//发布到服务器的时候,这里127.0.0.1我改成了我的IP地址
"Server": "127.0.0.1:6001"//发布到服务器的时候,这里127.0.0.1我改成了我的IP地址
}
}
配置文件的端口,无论我怎么改,只要我发布项目,然后运行exe文件,端口死活是2个,5000和50001(这是在本地直接打包发布运行的)
项目里我搜索出来的端口5000,也就只有WebApi里面有写,但是我改了,重新发布,还是端口死活是5000和50001
好了,等我把IMServer发布到服务器就是端口是一个5000,我配置文件怎么改都是5000,好吧,我认了, 我把webapi也改成5000,Redis是可以链接上(链接地址没动过,IP:6379,是可以访问的),但是IMServer服务死活链接不上。
这是什么情况呢
代码图片发不到这里。不然我发图了
启动了imServer
启动了Web项目
查看redis也创建了房间,并且2个人员也有了
就是发送消息,双方都看不到?
这是什么问题呢?
就是api 端可以踢下线。还有踢出频道
用户刷新聊天页面或者直接强关聊天页面,未正常close websocket,旧有的ws连接如何回收。
nginx部署Imserver以后ws默认超时是60s(心跳包保持活性),iis好像没有,没找到如何设置,有懂的大佬吗
希望能支持视频聊天
巨佬。。我在网页端能实现IM功能了。。那么请问该如何在iOS、安卓的那个非网页端 来通过webSocket来和 IM展开通讯呢?
您好,我自己在之前使用Nuget包的时候,正常的一个使用没问题的,但是我从git上拉您的源码下来使用后,我前端链接Websocket时,后端就会说资源以释放,不可访问.想请教一下是需要哪里配置吗.
大佬,我看到代码内,是连接的别的IP地址。如何绑定到我自己的地址???如何将数据存入到我自己的数据库??。是否有相关的介绍或者文档来操作一下呢。。。可以加QQ嘛??
消息通过客户端提交至webapi,再由imServer转发,这样消息传输会比客户端直接发给imServer慢吧?如果慢,对IM这种即时通讯工具在体验上会差一些。
前端是https的, imserver是http可以码?
这个怎么发送图片和语音信息呢?
现在感觉.net 生态里缺 Event Bus 之类的消息总线 组件
imServer里面可以写业务吗,部署就简单多了。。
您好,这个框架只适用于uniapp编写的app吧?原生的app不适用这个FreeIM框架吧,哪怕是服务端用ImServer 服务端,客户端用app原生的websocket client 库这样也不行吧?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.