美文网首页laravel学习笔记
Swoft Web即时聊天实战

Swoft Web即时聊天实战

作者: Emotion_c293 | 来源:发表于2019-12-06 16:06 被阅读0次

    基于Swoft构建的Web聊天应用

    在这里插入图片描述

    简介

    本项目是基于Swoft的练手项目,主要使用框架中的Http,WebSocket构建,用于新手熟悉Swoft框架。

    环境要求

    效果展示

    很有意思的登录页

    在这里插入图片描述

    登陆首页

    用户:程心,好友:三体
    在这里插入图片描述
    用户:三体,好友:程心
    在这里插入图片描述

    聊天页面

    用户:程心,好友:三体
    在这里插入图片描述

    功能

    • 用户登陆退出功能(todo 注册功能)
    • 登陆认证中间件
    • 同一用户,打开多个窗口,可以实现聊天记录同步接受,即支持多端登陆。
    • 好友列表(todo 新增好友功能)
    • WebSocket端已支持群聊功能(todo Http端需要做逻辑和界面处理)

    安装

    Composer 创建项目
    $ composer create-project ohhink/swoft-im 
    
    将.env.example复制成.env并配置对应参数
    APP_DEBUG=0
    SWOFT_DEBUG=0
    
    REDIS_ONLINE_USER=online-user
    REDIS_HOST=127.0.0.1
    REDIS_PORT=6379
    
    DATABASE_HOST=192.168.10.10
    DATABASE_USERNAME=homestead
    DATABASE_PASSWORD=secret
    DATABASE_TABLE=swoft
    DATABASE_CHARSET=utf8mb4
    
    运行数据库迁移命令
    $ php bin/swoft migrate:up
    
    添加模拟数据,也可以自己创建,主要是user用户表和friend好友关系表
    # 添加用户
    INSERT INTO `user`(`id`, `name`, `username`, `password`, `avatar`, `online`, `created_at`, `updated_at`) VALUES (1, '程心', 'user1', '2bbff72ba88f1c6a17f43819b09806ac', '/image/avatar2.jpg', 0, NULL, NULL);
    INSERT INTO `user`(`id`, `name`, `username`, `password`, `avatar`, `online`, `created_at`, `updated_at`) VALUES (2, '三体', 'user2', '2bbff72ba88f1c6a17f43819b09806ac', '/image/avatar1.jpg', 0, NULL, NULL);
    
    # 添加好友关系
    INSERT INTO `friend`(`id`, `user_id_a`, `user_id_b`, `created_at`, `updated_at`) VALUES (1, 1, 2, NULL, NULL);
    INSERT INTO `friend`(`id`, `user_id_a`, `user_id_b`, `created_at`, `updated_at`) VALUES (2, 2, 1, NULL, NULL);
    
    
    启动WebSocket和Http
    $ php bin/swoft ws:start
    
    # 热更新启动,适合开发使用
    $ php swoftcli.phar run -c ws:start
    

    使用

    访问对应地址,这里假设ip为192.168.10.10,端口为18308,所以访问地址为
    http://192.168.10.10:18308/login
    # 账号:user1
    # 密码123123
    # 账号:user2
    # 密码123123
    
    注意,要在本机实现两个客户端间的通讯,需要使用两个浏览器,或者开启一个Chrome的匿名模式

    维护者

    @OhhInk.

    如何贡献

    非常欢迎你的加入! 有任何问题或者想要贡献代码,请提交 issue

    使用许可

    MIT © OhhInk

    相关文章

      网友评论

        本文标题:Swoft Web即时聊天实战

        本文链接:https://www.haomeiwen.com/subject/hgsegctx.html