V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
solaro
V2EX  ›  PHP

PHP socket 你们都用在什么场景上?

  •  
  •   solaro · 2018-02-19 15:41:24 +08:00 · 6061 次点击
    这是一个创建于 2467 天前的主题,其中的信息可能已经有所发展或是发生改变。

    好奇。。。从未用过

    23 条回复    2018-03-02 06:57:45 +08:00
    UnixCRoot
        1
    UnixCRoot  
       2018-02-19 16:01:56 +08:00 via Android
    端口数据转发 构造自定义数据包
    shiny
        2
    shiny  
       2018-02-19 16:04:32 +08:00
    以前见得多的是 smtp 发信,以及 DDoS 木马。
    minbaby
        3
    minbaby  
       2018-02-19 16:04:33 +08:00   ❤️ 1
    github 上这个东西其实蛮多的,只不过国内的都觉得 php 的 socket 不适合生产环境,所以各方面都挺少的。
    国内的话 swoole (c 扩展) 和 workerman ( PHPsocket )。

    参考:

    https://github.com/amphp

    https://github.com/reactphp

    https://github.com/hoaproject


    ------

    多关注过一些类库或者项目依赖的,会发现新世界的。╭(╯^╰)╮
    jtsai
        4
    jtsai  
       2018-02-19 16:06:18 +08:00 via Android
    两台设备没有 http 服务器做通信的时候就用。php 很尴尬,自带 http
    zjsxwc
        5
    zjsxwc  
       2018-02-19 16:06:18 +08:00 via Android
    websocket 和 js 通讯吧
    dobelee
        6
    dobelee  
       2018-02-19 16:24:32 +08:00 via Android   ❤️ 1
    看看 swoole 的應用場景就比較清晰了。
    xoxo419
        7
    xoxo419  
       2018-02-19 17:15:16 +08:00   ❤️ 1
    workerman
    Heimo
        8
    Heimo  
       2018-02-19 18:20:22 +08:00 via iPhone
    @zjsxwc websocket 和 socket 的名字就像 java 和 javascript。不是一个概念
    jacy
        9
    jacy  
       2018-02-19 19:08:40 +08:00 via Android
    模拟 srun3000
    components
        10
    components  
       2018-02-19 20:13:26 +08:00
    https://github.com/weiboad/kafka-php
    https://github.com/nrk/predis
    期待 php 的 socket 更加强大,生态更加完善
    components
        11
    components  
       2018-02-19 20:32:10 +08:00
    zjsxwc
        12
    zjsxwc  
       2018-02-19 20:37:32 +08:00
    @Heimo

    websocket 和 socket 的名字是 groovy 与 jvm 的关系
    MeteorCat
        13
    MeteorCat  
       2018-02-19 23:58:39 +08:00 via Android
    以前页游后台(没错就是网页游戏,渣渣辉这种)使用比较多,以前都是 PHP 用 socket 请求游戏服务端获取数据或者更新游戏服务端配置
    sagaxu
        14
    sagaxu  
       2018-02-20 12:16:25 +08:00 via Android   ❤️ 1
    @minbaby php socket 为何不适合生产环境?
    @MeteorCat 页游各种技术栈后台都有,有一套 erlang 代码被改出很多个游戏来
    @jtsai http 协议的解析开销比较大
    minbaby
        15
    minbaby  
       2018-02-20 13:33:27 +08:00   ❤️ 1
    @sagaxu 你可以认为 php 这门语言出现就是为了搞定 web,后来发展起来之后才出现了 socket 绑定,也仅仅是有 socket 绑定。

    说一些劣势:
    一是没有成熟的 socket 框架(说的是之前,现在还是蛮多的)
    二是搞 php 的对网络编程的熟悉人比较少
    三是 php 对于多进程、线程支持也不好,要不是最近 ev/uv 火起来的话,怎么使用 socket ?
    四是类库参差不齐啊,鬼知道有没有内存泄漏,在 web 上很难察觉,毕竟是不用常驻内存。

    这种东西能说一大堆。

    给人的直观感觉就是不敢用啊,还不是上 python、ruby、go、java。。。放心。


    --------
    说个小故事,之前用 php 写一个推送的 deamon 程序,发现内存泄漏非常严重,排查了很久发现是 个推(不是打广告啊。。。)使用了一个 pb 类库,但是使用姿势有问题导致的。跟他们开发沟通。。。他们似乎。。不在意?不理解? 反正就没有后续了。
    lookas2001
        16
    lookas2001  
       2018-02-20 14:28:53 +08:00 via Android
    pocketmine
    Minecraft Bedrock 非官方服务器
    MeteorCat
        17
    MeteorCat  
       2018-02-20 18:36:54 +08:00 via Android
    @sagaxu 不是游戏服务端,说的是游戏后台
    javq
        18
    javq  
       2018-02-20 21:17:02 +08:00
    聊天室,消息推送,代&理,数据转发,游戏服务器等等
    lslqtz
        19
    lslqtz  
       2018-02-20 21:23:47 +08:00
    发 UDP 用过,其它的几乎不想用。
    因为会有等待时间。。
    异步当我没说
    linxl
        20
    linxl  
       2018-02-22 09:48:51 +08:00
    做过消息推送.
    owenliang
        21
    owenliang  
       2018-02-22 11:15:13 +08:00
    短链接后端 c/c++等高性能服务。
    puritania
        22
    puritania  
       2018-02-27 10:18:14 +08:00
    个人觉得短连接的 socket 还不如老老实实用 http 了,之前用 swoole 做过 apns 推送长连苹果的服务器。
    kenan2677
        23
    kenan2677  
       2018-03-02 06:57:45 +08:00 via iPhone
    @MeteorCat 舅扶你
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1013 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:20 · PVG 06:20 · LAX 14:20 · JFK 17:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.