GithubHelp home page GithubHelp logo

Comments (9)

onanying avatar onanying commented on August 21, 2024

框架中本身包含有的 demo 就已经能实现。

你先看 ws 的 join 代码,这里订阅了房间号的一个 redis 通道 "room_{$model->roomid}"https://github.com/mix-php/mix/blob/master/applications/websocket/src/Controllers/JoinController.php#L52

你只需要在 daemon 模块开一个进程往 redis 这个 "room_{$model->roomid}" 通道 publish,房间里的人都能收到。

后面的复杂需求你都能通过这种方式举一反三。

from mix.

osakey avatar osakey commented on August 21, 2024

恩。demo 里面看了, 是 通过redis的 发布/订阅实现的。 但是发布订阅,这个不好跟踪是否丢失,是否什么时候重发。

from mix.

osakey avatar osakey commented on August 21, 2024

比如给指定人 fd 发消息, 建立连接的时候, 我会将fd 跟 用户唯一标识绑定。 会维护这个绑定关系。 但是 我若在 守住进程那边定时 push, 我就不知道怎么弄了。 在websocket 应用里面, 倒是可以实现。在其他 模块不知道如何调用

from mix.

onanying avatar onanying commented on August 21, 2024

需要你开动脑筋,工具大家都是这一些,业务都是自己设计,别人帮不了你,也不可能帮你。

from mix.

onanying avatar onanying commented on August 21, 2024

定时 push 用定时器,框架有提供

from mix.

osakey avatar osakey commented on August 21, 2024

其实我就想问问这个框架的,Daemon 模块,如何优雅调用websocket 的发送 。因为这框架整个代码都是很舒服的。 至于业务,我也没想着让人帮。只是咨询下,其他模块如何调用websocket 的发送。

from mix.

onanying avatar onanying commented on August 21, 2024

@chenhui1221 用定时器,往redis实例里 publish 数据即可。

from mix.

osakey avatar osakey commented on August 21, 2024

我也不知道是我的描述问题还是怎么的。 如果用redis,sub/pub. 客户端主动断开。 但是redis的sub 还存在该fd, 到时候pub 时候, 错误日志会 NOTICE swFactoryProcess_finish (ERROR 1005): connection[fd=2] does not exists
其次,如果我在Daemon模块,不用sub/pub.形式。根据业务,需要 push($fd) 指定的fd,这个框架好像是不支持这样吧。

from mix.

osakey avatar osakey commented on August 21, 2024

@onanying 还请指点下。

from mix.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.