Wildfire IM is a professional-grade instant messaging and real-time audio and video overall solution, maintained and supported by Beijing Wildfire Infinite Network Technology Co., Ltd.
The main features are: private deployment is safe and reliable, powerful performance, complete functions, full platform support, high open source rate, simple deployment and operation and maintenance, friendly secondary development, easy to connect with third-party systems or embed into existing systems. Please refer to the online documentation for details.
It mainly includes the following projects:
| GitHub repository address (main site) | Code Cloud Warehouse Address (Mirror) | illustrate | Remark |
|---|---|---|---|
| im-server | im-server | IM Server | |
| android-chat | android-chat | Wildfire IM Android SDK source code and App source code | It can be easily developed or integrated into existing applications |
| ios-chat | ios-chat | Wildfire IM iOS SDK source code and App source code | It can be easily developed or integrated into existing applications |
| pc-chat | pc-chat | PC side developed based on Electron | |
| web-chat | web-chat | Wildfire IM web end, experience address | |
| wx-chat | wx-chat | Demo of the mini program platform (supports mini program platforms such as WeChat, Baidu, Alibaba, Byte, QQ, etc.) | |
| app server | app server | Application server | |
| robot_server | robot_server | Robot server | |
| push_server | push_server | Push server | |
| docs | docs | Wildfire IM related documents, including design, concept, development, and instructions, view online |
Wildfire IM Vue Electron Demo, demonstrates how to integrate the capabilities of wildfire IM into the Vue Electron project.
PC SDK used in this project requires a fee. Please refer to the fee details for the price.PC SDK supports trial, please see the trial instructions for detailsPC SDK and connect to the self-deployed services. master : Based on Vue 3 development, it is the focus of future developmentvue2 : Based on Vue 2 development, it enters maintenance mode and is not developing new features. Given that Vue 2 has terminated support and no longer maintained, it is recommended that customers upgrade to Vue 3 version This step installs a lot of installation content for Windows development environment. If the network is not good, it may take a long time to wait. Choosing to install it when the network is better in the morning is a good choice.
Or refer to the manual installation of windows-build-tools
npm config ls view the path of .npmrc configuration file.npmrc file, add the following Electron and node mirroring configurations: ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
registry=https://registry.npmmirror.com/
npm install or npm cinpm run dev Be careful to avoid using cnpm . We have experienced some strange problems when using cnpm . If you use cnpm , please switch to npm and try it. In addition, there cannot be Chinese or spaces in the code path, otherwise there may be problems during the development and packaging process.
npm install -g vue-devtoolsvue-devtoolsscript into head of public/index.htmlnpm run dev in the project directory Packaged as current platform architecture software
npm run package
yarn install --ignore-enginesyarn run package .github/workflows/github-actions-package.yml and modify them according to the actual situation, such as whether to package the Linux version, etc.Packaged as other platform architecture software
#打包windows系统amd64架构
npm run cross-package-win
#打包windows系统x86架构
npm run cross-package-win32
#打包linux系统amd64架构
npm run cross-package-linux
#打包linux系统arm64架构
npm run cross-package-linux-arm64
#打包mac系统
npm run cross-package-mac
Currently, the Electron version used by master is 13.6.9. If the SDK you are using is 8, switch to branch electron_8. The old version will enter the maintenance stage and no new features will be added. Friends who are developing can contact us to update to the latest SDK. The SDK is version-related. If your application is another version of Electron, you can also use the SDK we provide.
Free version of audio and video is included by default. For wildfire audio and video, you can refer to the instructions for use of wildfire audio and video and the introduction of wildfire audio and video. If you are using the Audio and Video Advanced Edition, please refer to the Audio and Video Advanced Edition switching method.
How to debug? The PC uses Electron and is embedded with Chrome browser, which is the same as developing and debugging on the browser. The shortcut key Ctrl +g (CMD +g under MAC) opens the developer mode.
When packaging, if installing production dependencies platform=win32 arch=ia32 appDir=C:<your path>pc-chatdist , or if you prompt to download something, you can unzip the electron dependencies of the corresponding platform in dep directory to the corresponding directory.
// windows
C:Users<你的用户名>.electron-gyp
// mac/linux
~/.electron-gyp
When packaging, if the downloaded electron version timeout, you can use the domestic electron image. For example, the command to use Huawei's electron mirror is: npm config set electron_mirror https://mirrors.huaweicloud.com/electron/ .
Installation needs to be strictly followed in the environment on Windows. The environment on Mac is relatively simple, just install node and node-gyp. Also, if there are still problems, please try the command npm cache clean --force , then delete node_modules, and then re-administrator npm ci --registry=https://mirrors.huaweicloud.com/repository/npm/
Some antivirus software will report viruses to the software packaged by electron. For details, please refer to the electronic report viruses. The installation may be restricted by antivirus software during installation. At this time, users can use the green installation-free version (unpacked directory under the release directory after packaging). If an error is reported during runtime, please add an exception to the antivirus software. In addition, companies with conditions may consider going to 360 official or other official software-killing officials to submit testing.
Under ubuntu, when starting, if prompted, A JavaScript error occurred in the main process Uncaught Exception:Error: Cannot open /opt/wildfirechat/resources/app.asar/marswrapper.node: Error: libdouble-conversion.so.1: cannot open shared object file: No such file or directory , you can install libdouble-conversion1 to solve the problem.
Win platform wildfire client relies on Visual C++ Redistributable Package runtime. If the user does not install it on the PC and needs to install it before it can run, please download and install it from Microsoft official https://www.microsoft.com/zh-CN/download/details.aspx?id=48145. Note that this installation package has a 32-bit/64-bit distinction, and the corresponding architecture version needs to be installed.
When taking screenshots of MAC applications, you can only take a blank desktop and cannot take a screenshot of the contents of the window. This is because there is no security permission for the mac system. In Settings -> Security and Privacy -> Switch to Privacy Tag -> Screen Recording -> Check in front of the Wildfire IM PC application and restart the application.
npm install report Unexpected end of JSON input while parsing near... Error
If FAQ 4 cannot be solved, you can try npm config set registry https://mirrors.huaweicloud.com/repository/npm/ and then follow the steps of FAQ 4
For audio and video related issues, please refer to the following documents
Pure intranet environment, no expression can be displayed
src/assets/twemoji directory to a server that can be accessed intranet, such as the server that deploys app serverhttp(s)://base_twemoji_url/72x72/1f1e6.png : http(s): http(s): http(s): http(s): http(s): http(s): http(72x72/1f1e6.png; here 1f1e6.png ; white letters on blue background;config.js and replace https://static.wildfirechat.net/twemoji/assets/ with the newly deployed http(s)://base_twemoji_url/ . Note that the last one / cannot be omitted.Want to deploy emoticon pictures yourself
Please FAQ 11
Always prompted: Electron failed to install correctly, please delete node_modules/electron and try installing again . See the problem of using domestic Electron mirroring above.
Windows 7 cannot start normally, black or white screen is displayed
background.js and cancel //app.disableHardwareAcceleration(); the previous comment // pls refer to: https://blog.csdn.net/youyudexiaowangzi/article/details/118676790
// windows 7 下面,如果启动黑屏,请将下面注释打开
//app.disableHardwareAcceleration();
The MAC packaged version is Universal version, which can support both x64 architecture and arm64 architecture. The Universal version is bigger than the single architecture version. If you want to package a single architecture version, you can lose weight to the corresponding single architecture and then package the corresponding platform. Please find the specific implementation method yourself.
The MAC system requires signatures to run. It is possible to re-sign the wildfire SDK. Please search the Internet for the signature method.
When the Linux Arm64 version is packaged, there will be problems when packaging the Deb format version in the linux+arm64 environment, because there is a dependent software FPM that is x64 architecture, and must be cross-packaged under the x64 architecture machine. The system can be Windows/mac/linux (Mac's arm64 machine is also available, because the mac system has rosetta to run x64 software).
Stress tests found that Vue's built-in keep-alive component may have slow memory leakage problems. You can remove keep-alive in HomePage.vue Due to the activated and deactivated callbacks, keep-alive components must be used to take effect. The logic in these two callbacks needs to be properly handled.
If you use the professional IM service and use the wildfire object storage service, you need to make the wildfire object storage service support https, and the PC client and web client need to upload using HTTPS.
Packaging failed, prompt Error in script "<stdin>" on line 75 -- aborting creation process
The system username is Chinese, or the project is placed under the Chinese path, which will cause the packaging to fail. Please avoid using the Chinese username or Chinese path for packaging. You can refer to this
Windows package failed and prompted ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Before each package, open the task manager to check whether the electron process is running. You must kill all of them before package is packaged normally. Please refer to github issue