美文网首页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即时聊天实战

    基于Swoft构建的Web聊天应用 简介 本项目是基于Swoft的练手项目,主要使用框架中的Http,WebSoc...

  • 简述长轮询实现在线聊天实现

    最近在做web端客服和客户即时聊天的功能,采用了长轮询来进行聊天细细的即时推送。 长轮询Long Polling ...

  • 2020-11-04第一天swoole安装

    Swoole应用:web项目,IM通信,网络游戏,微服务 swoft,easyswoole,...

  • 开源微信?vue+websocket+Springboot实现的

    [飞享]-即时聊天系统web客户端,使用vue框架,基于websocket实现基于json的文本协议实现即时通信。...

  • 即时聊天_即时推送

    在线测试:http://www.cnblogs.com/romanticcrystal/p/8979869.htm...

  • 即时聊天

    六个免费开源的即时通讯软件源代码 常见即时通讯:网易IM 、腾讯IM、环信IM、融云IM、leancloud IM...

  • swoft 实战常见技巧

    1.获取某个key值 ArrayHelper::getValue() 2.获取对应的value,有默认值。 A...

  • swoft开发环境

    1,docker run -p 10080:80 --name swoft --rm -d swoft/swof...

  • 关于即时聊天

    https://github.com/coderMyy/MYCoreTextLabel 图文混排 , 实现图片文...

  • 即时聊天demo

    界面是仿照qq聊天界面做的 1.添加好友 2.同意好友请求 3.好友数据列表 4.删除好友 5.好友实时聊天 6....

网友评论

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

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