推荐给大家一个云服务器的好玩法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
firechat
V2EX    推广

推荐给大家一个云服务器的好玩法

  •  1
     
  •   firechat 2021 年 3 月 17 日 3555 次点击
    这是一个创建于 1769 天前的主题,其中的信息可能已经有所发展或是发生改变。

    又到了云服务的采购忘记,各路云也都是优惠不断,今年配置更高价钱更便宜,非常有吸引力,但往往买过之后很多也都在吃灰。这里给大家推荐一个好的玩法,更有意思更好玩的用途:搭建一套野火 IM 聊天系统。

    服务器环境准备

    1. 安装 jdk1.8 或者 jre1.8 ( windows 或 linux 都可以)。
    2. 确保 80 、1883 、8888 端口没有被占用,最常见就是被 nginx 占用。
    3. 安全组开放 80 、1883 、8888 端口。

    服务器部署

    需要部署两个服务,一个是 IM 服务,用来处理 IM 业务用的。另外一个是 demo 应用服务,用来做登录等业务的。

    IM 服务器部署

    1. https://github.com/wildfirechat/server/releases 这里下载最新的软件包,上传到服务器并解压。
    2. 修改 config 目录下的wildfirechat.conf,把server.ip改成您云服务器的公网 ip 地址,然后保存。
    3. 在终端中进入到解压目录中的 bin 的同级目录,执行sudo sh ./bin/wildfirechat.sh 。如果想要后台执行命令sudo nohup sh ./bin/wildfirechat.sh 2>&1 & 。( windows 下执行 wildfirechat.bat 脚本)

    应用服务部署

    1. https://github.com/wildfirechat/im-app_server 这里下载最新的软件包,上传到服务器并解压。
    2. 执行命令java -jar app-0.49.jar。如果想要后台执行命令java -jar app-0.49.jar 2>&1 &

    检查服务是否正确

    打开浏览器分别输入地址验证

    1. 输入 http://你的云服务器公网 ip 地址 /api/version,如果返回的是一个 json,那就是正确了。
    2. 输入 http://你的云服务器公网 ip 地址:8888,如果返回的是一个 OK,那就是正确了。

    至此服务器部署完成。

    客户端配置打包测试

    客户端支持 Android 和 iOS,都是原生语言写的,需要有对应的 Android Studio 和 XCode,需要最新版本,可以创建工程并在手机上运行。

    Android 的配置与运行

    1. https://github.com/wildfirechat/android-chat 下载源代码。
    2. 用 AS 打开,并找到cn.wildfire.chat.kit.Config配置类,修改IM_SERVER_HOST的值为您的服务器公网 IP 地址,注意只是 ip 地址,不带 http 头。
    3. 找到cn.wildfire.chat.app.AppService类,修改APP_SERVER_ADDRESShttp://云服务器公网 IP 地址:8888,这个是带 http 头的。
    4. 连上手机运行,在登录界面输入手机号码,验证码输入五个 6,也就是66666
    5. 另外再找个手机,登录后两个手机发送文字、语音、图片等消息。创建群组等操作。拨打音视频电话等。

    iOS 的配置与运行

    1. https://github.com/wildfirechat/ios-chat 下载源代码。
    2. 用 XCode 打开,并找到WFCConfig.mm配置文件,修改IM_SERVER_HOST的值为您的服务器公网 IP 地址,注意只是 ip 地址,不带 http 头。
    3. 在同个文件中,修改APP_SERVER_ADDRESShttp://云服务器公网 IP 地址:8888,这个是带 http 头的。
    4. 连上手机运行,在登录界面输入手机号码,验证码输入五个 6,也就是66666
    5. 另外再找个手机,登录后两个手机添加好友、发送文字、语音、图片等消息。创建群组等操作。拨打音视频电话等。

    后续

    做到上面这些,你就拥有了一个基础的即时通讯软件了,可以放到哪里等着吃灰了[手动狗头]。

    如果不想吃灰,还可以继续入坑,比如买个域名,网站备案,把 ip 换成域名。对接短信,购买云服务的短信包,可以放到外面让别人用短信验证码登录。使用 mysql 数据库,支撑更高的系统容量。部署对接推送服务,让手机有离线接收推送的能力。对接七牛云服务,提供发送文件 /图片 /视频的速度。部署自己的音视频服务器,提高带宽,支持更大的并发容量。

    前面这些基本上不用开发,就是购买配置就可以了。除此之外,还可以做进一步的二次开发,由于代码开源程度比较高,可以与各种系统做对接,或者深度的定制。当你深度玩转这些以后,可以尝试者去接一些即时通讯的开发外包,说不定能够帮你解决 35 岁的顾虑。

    4 条回复    2021-03-17 23:17:28 +08:00
    elechi
        1
    elechi  
       2021 年 3 月 17 日
    安卓下推送怎么样?
    firechat
        3
    firechat  
    OP
       2021 年 3 月 17 日
    abcde51111
        4
    abcde51111  
       2021 年 3 月 17 日
    可以放到哪里等着吃灰了
    emmmmm
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3147 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 12:55 PVG 20:55 LAX 04:55 JFK 07:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86