默认
发表评论 16
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已解决] 请教如何将MobileIMSDK集成到web项目里,作为服务器使用?
我想用下载下来的客户端,但是服务端不知道怎么集成,如何写?
客户端如下

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:MobileIMSDK

O{6(E@IV_0K~L8HQJ4S6$R1.png (30.42 KB, 下载次数: 2971)

客户端

客户端
上一篇:[已解决] 请教MobileIMSDK的Android端登录问题下一篇:[已解决] 求教MobileIMSDK中如何生成带字母的user_id

本帖已收录至以下技术专辑

推荐方案
评论 16
客户端不是要用Web网页进行聊天吧?只是希望MobileIMSDK的服务端在你的Web服务端工程中启动对吧?

我从github上下载了这个客户端,但是我不知道服务端是如何布置的,搞不懂了
如果只是希望MobileIMSDK在Web服务端启动的话,那就简单了,方法有很多,比如这个项目里是把它放到一个WebListener里启动,代码如下,仅供参考:
public class WebListenerEx extends WebListener
{
        /**
         * The web module is ready to process requests.
         * {@inheritDoc}
         */
        public void contextInitialized(ServletContextEvent servletContextEvt)
        {
                super.contextInitialized(servletContextEvt);
                
                try
                {
                        //
                        ChatServerLauncher.getInstance().startup();
                        // 启动定期转储过期图片和语音的处理线程
                        TimmingRestoreImgAndVoice.getInstance().start();
                }
                catch (Exception e)
                {
                        System.err.println("[HTTP]【N】聊天服务器启动时出错,原因是:"+e.getMessage());
                        e.printStackTrace();
                }
        }

        /**
         * The servlet context is about to be shut down.
         * {@inheritDoc}
         */
        public void contextDestroyed(ServletContextEvent servletContextEvt) 
        {
                super.contextDestroyed(servletContextEvt);
                
                try
                {
                        ChatServerLauncher.getInstance().shutdown();
                        // 关闭定期转储过期图片和语音的处理线程
                        TimmingRestoreImgAndVoice.getInstance().stop();
                }
                catch (Exception e)
                {
                        System.err.println("[HTTP]【N】聊天服务器关闭时出错,原因是:"+e.getMessage());
                        e.printStackTrace();
                }
        }
}
其中,ChatServerLauncher这个类就相当于MobileIMSDK的服务端Demo中的ServerLaunchImpl这个类。放到WebListener里启动的原因是,Java 的Web容器会自动执行WebListener里的代码,只要你的Tomcat、WebLogic这种Java Web容器启动,它就自动执行了,很方便。

你还可以用其它方法启动,反正只要让ServerLaunchImpl类运行起来就行了,这总归没什么想不明白的吧。
好的,我试试
引用:JackJiang 发表于 2017-03-13 11:41
如果只是希望MobileIMSDK在Web服务端启动的话,那就简单了,方法有很多,比如这个项目里是把它放到一个WebL ...

谢谢老师!解决这个问题了
引用:liu1348789134 发表于 2017-03-13 11:43
好的,我试试

咋弄的
签名: 该会员没有填写今日想说内容.

创建一个类PortListener继承WebListener,然后覆盖contextInitialized()方法,这个方法里面初始化ServerLauncherImpl; 然后在你的web.xml里面配置PortListener,ok
引用:liu1348789134 发表于 2017-03-14 10:18
创建一个类PortListener继承WebListener,然后覆盖contextInitialized()方法,这个方法里面初始化Serve ...

OK   3q
签名: 该会员没有填写今日想说内容.
MobileIMSDK-Web版已经发布,专用于手机或PC端浏览器的网页聊天和消息推送:http://www.52im.net/thread-959-1-1.html
我就把服务端的嵌入web  然后加几个websocket  登录的时候区分一下客户端类型是app还是web  web前端用layim  一个支持web的im妥妥的就出炉了
签名: 该会员没有填写今日想说内容.
引用:JackJiang 发表于 2017-03-13 11:41
如果只是希望MobileIMSDK在Web服务端启动的话,那就简单了,方法有很多,比如这个项目里是把它放到一个WebL ...

WebListener 完整的包名是什么,我这边怎么都找不到这个类 只有 ServletContextListener什么的
引用:longnight0119 发表于 2018-09-14 14:17
WebListener 完整的包名是什么,我这边怎么都找不到这个类 只有 ServletContextListener什么的

我只是举个例子,WebListener是我封装的ServletContextListener
引用:JackJiang 发表于 2018-09-14 16:12
我只是举个例子,WebListener是我封装的ServletContextListener

哦,我已经不在web里继承了 重新建了个项目
引用:longnight0119 发表于 2018-09-14 17:18
哦,我已经不在web里继承了 重新建了个项目

也可以
引用:liu1348789134 发表于 2017-03-14 10:18
创建一个类PortListener继承WebListener,然后覆盖contextInitialized()方法,这个方法里面初始化Serve ...

能发下weblistener的代码吗?我按照这样做,IM的服务是起来了,但web项目起不来
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部