默认
发表评论 7
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已解决] MobileIMSDK-Web导入到自己的web中,浏览器端的socket.io.js如何导入啊
教程里边没有讲到socket.io.js 以及相关文件如何导入到自己的web项目中,这个文件好像涉及关联到其他文件,是在node_modules下面的
[已解决] MobileIMSDK-Web导入到自己的web中,浏览器端的socket.io.js如何导入啊_QQ图片20170926110724.png

我导入的目录如下:
[已解决] MobileIMSDK-Web导入到自己的web中,浏览器端的socket.io.js如何导入啊_QQ图片20170926111232.png

麻烦群主可以指导下,其他的我都导入了,登录的时候,就是登陆不了,应该是IMSDK没找到
谢谢

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

推荐方案
评论 7
引用:963536541 发表于 2017-09-26 13:55
太牛b了,群主,用远程绝对路径就搞定了!感谢!

太牛b了,群主,用远程绝对路径就搞定了!感谢!
签名: 试试看签到6个字
引用:963536541 发表于 2017-09-26 12:51
浏览器端只能再nodejs环境下运行吗?不能弄到我自己的java web tomcat下面运行吗?

当然不是一定要放到tomcat web下了。就跟你用其它库一样,它有可能是你本服务器的(浏览器端用相对路径就可以引用了)、也有可能是CDN上的别人的lib(比如百度CDN上免费的jquery库等)用绝对url路径就解决问题了。

相对的,你的这个页面里引用nodejs上的socket.io.js的绝对URL地址就好了,比如:http://nodejsserver:3000/soclet.io/soclet.io.js,这样就解决问题了。

对于浏览器而言,不管静态资源来自哪里,只要能拿到它就可以运行,这就是事情的本质哦。
浏览器端只能再nodejs环境下运行吗?不能弄到我自己的java web tomcat下面运行吗?
签名: 试试看签到6个字
你好,我的浏览器端代码是放在的一个tomcat java web下面啊,我引入demo里边的那些js,登录不了啊,IMSDK找不到好像,这个怎么弄啊
直接用nodejs部署起来是完全没有问题的,包括浏览器端也没问题。为什么放到tomcat里边 主要的登录api这些运行不了啊,其他js好像都可以运行
签名: 试试看签到6个字
你把MobileIMSDK-Web自带的Demo部署成功了吗?如果这个成功了,表示你部署的方法是正确的。否则你先把MobileIMSDK-Web部署成功。

另外<script src="/socket.io/socket.io.js"></script>  这个在socket.io工程里是比较特殊的这个socket.io.js文件并不需要您放入到你的浏览端JS静态资源里,socket.io服务端会自动拦截这个请求,并把socket.io.js文件作为浏览器端静态资源按照相对url="/socket.io/socket.io.js"的方式提供给你。总之,只要你把socket.io服务端(或者说MobileIMSDK-Web服务端)部署成功,用这个路径就能成功引用到这个静态资源,不需要你浏览器端单独引用静态资源,这是个有趣的问题,如要深究,你可以看看socket.io源码。

还有,你也可以看看这个帖子:http://www.cnblogs.com/sword-successful/p/4987124.html,这个作者跟你有同样的困惑
[已解决] MobileIMSDK-Web导入到自己的web中,浏览器端的socket.io.js如何导入啊_WX20170926-114459@2x.png

不过,其实这个技巧只是socket.io为了方便开发者而做出的,如果你不想要它自动为你引入这个静态资源,你也可以单独去,socket.io官网下载独立的客户端静态资源(包含你要的socket.io.js文件),但我认为这不是最佳方式,容易跟服务端的代码发生版本不一致。总之你尽量按照官方的推荐方法来,不行就再按我说的这个方法来(但不推荐)。

点评

JackJiang  说:
这是最佳解决方法!  (7 年前)
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部