`
solonote
  • 浏览: 89988 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

冷静的比较一下Douyu和Play Framework

阅读更多
刚刚用Play Framework做了一个小型项目,开发速度非常快.运行的速度也很不错,很稳定.
今天又看到了有同学开发了一个Douyu平台,下面评论一大堆,非常火爆,冷静下来再看一遍帖子,
没发现Douyu能在开发速度上比Play做的更好.

斗鱼作者ZHH:
引用

Play!框架除去与Douyu共有的动态编译之外,在我看来并没有多少值得我借鉴的思想。
我说Play!框架更像是个胶水框架也是有根据的:


我的分析:

1.动态编译
动态编译除了在开发模式下能够修改java文件而不重启服务器以外还有其他用处吗?(非常希望ZHH或者其他大侠能给我答案.)
从这一点出发,我不关心Play和Douyu的动态编译技术谁牛逼.
我认为Play在动态编译上已经做的很好,无论你修改Entity,Controller或者view,都无需重启服务器.

臆测:ZHH一直强调动态编译,我认为一部分原因是动态编译所用的技术比较深,值得炫耀.

2.ORM
Douyu:从数据库生成Entity
Play:遵循JPA标准,根据Entity生成表
这里我不想扯淡谈是否遵循标准的问题.我只想说,JPA模式相比较Douyu有以下优势:
a.Play可以在开发模式时用一个内存数据库,而Douyu必须你先安装一个数据库.在做原型程序的时候,这是很恶心的一件事情.
b.从数据库生成Entity与从Entity生成表在简单情况下是具有相同效率的,但是有以下需求时,明显的JPA要优于Douyu的ORM
b.1.Entity中有一些属性和方法不依赖数据库.这种情况从数据库生成Entity就很麻烦,生成了以后要手动去添加这些不依赖数据库的东西.
b.2.从数据库生成表依赖于特定的数据库,如果我换一个数据我必须要重新建表.

ORM上Douyu的方式完全败给JPA.

3.控制器
Douyu渲染一个试图参数是:
context.out("WhatTime.html", paramMap);

而Play的参数是:
render(param1,param2...);

Play的优势:
a.play不需要指明去渲染哪一个html,它根据方法名,Controller类去判定,Play定义的是一个规则.这种类似的规则在Play中还有很多,而且Play有一个特点,如果你不需要这种规则时,你往往可以去自定义.
而Douyu使用的方式是只能自定义.
b.play传给页面的参数不需要组织成一个map,更加自然.

4.视图
Play的页面模版有一套非常简单易用的tag机制,复用view非常的方便.Douyu当前的版本介绍里并没有提到如何复用view.

5.REST
因为ZHH没有实践过Play,其实Play的REST用一些pattern后会很简单的.
Play的REST做的是非常方便而且简单的,而Douyu没有这个功能.
在Play中REST只是作为route功能的一个子集,route功能还可以做其他的用处.

6.Testing
Play可以非常方便的做Unit Test以及FunctionalTest.
Play在Test上下了很多功夫,这一点大家实践一下就可以知道.
Play可以方便的组织测试数据,而这些数据是一个文本结构,不依赖于特定数据库.
也就是说即使你用的是一个内存数据库,你也可以很方便的组织测试数据.

7.关于第三方类库依赖以及大小
Douyu依赖的开源库很少,Play依赖了很多开源库,比如Hibernate等等.Douyu很小,Play下载下来需要90mb(其中还包含了python的解释器).
但我认为,作为一个非桌面应用程序来说大小和第三方类库的依赖完全不是评价一个framework的关键.

8.J2ee体系的支持
Play的应用程序发布以后会打包成一个war包,值得一提的是这个war包还是可以轻松的修改代码的.而且基本的程序结构也没发生什么变化.Play的war包可以运行在标准的J2ee容器中.
Douyu不支持原来的J2ee体系,只能运行在自己的服务器中.我不谈Douyu服务器和其他J2ee服务器的优劣.但是有一点
当前没有Douyu的Hosting提供商,你想用Douyu必须自己有一个服务器.而开发一个Play网站,仅仅租用一个tomcat空间就可以发布.
这会让Douyu陷入无人使用的境地,如果陷入这种境地,那么它就全无价值了.

9.其他的一些支持
Play对GAE也有支持,它还有很多的功能,比如Play的在运行出错时的报告非常的直观,你可以自己去了解和实践.

Play的"缺陷和问题":
Play有很多的静态方法,在Controller和Model中都有,静态方法带来的最大麻烦就是难以继承,这是很恶心的一件事情,这一点可能是Play框架的一个硬伤,不知道以后会不会有更正.

我用Play的感触是,这个框架是非常有经验的Web开发者所做的,非常的简单和方便,而且这个框架不像其他框架,当你进行真实开发时你会遇到很多难以达成的问题.就我的实践来说Play是非常易用和扩展的.

对于Douyu和Play,我的评价是Play是一个真正可以开发,而且我用过最方便的Java Web框架.我不知道用Play开发大型应用会不会遇到问题,这一点希望有实践经验的朋友来补充.
而Douyu就从当前发布的版本来说,除了它没有用静态方法以外,我看不到任何比Play有用的地方.

希望ZHH君继续,作为一个先行者的勇气,望你能做出一个优秀的框架!




分享到:
评论
66 楼 helian 2009-12-04  
ZHH2009 写道
icanfly 写道
斗鱼作者我承认技术是灰常的牛,but感觉上有点势才傲物了。


我承认我有双重性格,现实中我很低调,我也不爱交际,不喜欢跟人家争论,

但是在网上,特别是在技术方面,我就很容易激动,我不会动不动就随意BS别人,
但是也无法容忍别人对我指指点点,除非你真的在技术超过我,那我随你BS,你骂我是垃圾我都接受。

JavaEye的游戏规则我也知道,
我泡JavaEye至少有5年以上了,只是不怎么发帖,通常一年或半年才发一回帖,
在JavaEye注册过几个帐号,以前也得罪过JavaEye上的一些大佬(包括robbin在内),
但是都是在技术争论过程中引起的,激动时难免会说些狂妄的话,这就叫言多必失,
如果在现实中碰面了肯定不会像在网上那样严辞激烈。

如果我说过的话让人家很受伤,那就是我的错了,我很抱歉。


中国怨气比较大,讨论个技术动不动就战。
65 楼 ZHH2009 2009-12-04  
icanfly 写道
斗鱼作者我承认技术是灰常的牛,but感觉上有点势才傲物了。


我承认我有双重性格,现实中我很低调,我也不爱交际,不喜欢跟人家争论,

但是在网上,特别是在技术方面,我就很容易激动,我不会动不动就随意BS别人,
但是也无法容忍别人对我指指点点,除非你真的在技术超过我,那我随你BS,你骂我是垃圾我都接受。

JavaEye的游戏规则我也知道,
我泡JavaEye至少有5年以上了,只是不怎么发帖,通常一年或半年才发一回帖,
在JavaEye注册过几个帐号,以前也得罪过JavaEye上的一些大佬(包括robbin在内),
但是都是在技术争论过程中引起的,激动时难免会说些狂妄的话,这就叫言多必失,
如果在现实中碰面了肯定不会像在网上那样严辞激烈。

如果我说过的话让人家很受伤,那就是我的错了,我很抱歉。
64 楼 bluemusic 2009-12-04  
ZHH2009 写道
dennis_zane 写道
建议douyu作者重新发帖吧,昨天没有看到,投隐藏很难理解,我看了那帖子。


虽然我不知道是什么原因,我想还是算了,不想再重发了。

也希望JavaEye网站多加关注这类事情,
不管怎么样,这种结果难免对发帖人有一些情绪上的影响,
认真写篇文章也是花很多时间的,发帖人当然不想看到自己写完的东西得到这种反响。


最好的回击方式,是做出新版本来,不管如何还是支持你写的Douyu
63 楼 Laynepeng 2009-12-04  
dennis_zane 写道
建议douyu作者重新发帖吧,昨天没有看到,投隐藏很难理解,我看了那帖子。


http://www.iteye.com/topic/540417

原来的帖子地址。。。有办法恢复么?
62 楼 leon_a 2009-12-04  
刚看完那个帖子,想投精华,突然被评为隐藏贴了,很不理解
61 楼 ZHH2009 2009-12-04  
dennis_zane 写道
建议douyu作者重新发帖吧,昨天没有看到,投隐藏很难理解,我看了那帖子。


虽然我不知道是什么原因,我想还是算了,不想再重发了。

也希望JavaEye网站多加关注这类事情,
不管怎么样,这种结果难免对发帖人有一些情绪上的影响,
认真写篇文章也是花很多时间的,发帖人当然不想看到自己写完的东西得到这种反响。
60 楼 dennis_zane 2009-12-04  
建议douyu作者重新发帖吧,昨天没有看到,投隐藏很难理解,我看了那帖子。
59 楼 Laynepeng 2009-12-04  
ZHH2009 写道
我的回复在
http://www.iteye.com/topic/540417

昨天花了一天写篇文章,刚上来JavaEye看看,10分钟前还好好的,一个投隐藏的都没有,
过了10分钟后马上变隐藏,我知道很多人看我不爽,
但无声无息的把我的文章隐藏掉实在让我觉得不可思义。


也需我文章中提到的用语过份了点:
比如"胶水框架"
和下面这句话:
ZHH2009 写道

之所以出现两者并存的情况只是因为Play是个胶水框架,
也许是Play的开发人员不想修改或没能力修改eclipse jdt。


胶水框架又不是贬意词,Python语言还常称为胶水语言呢,
胶水只不过是用来形容一个东西的特点罢了。

相比这篇文章的用语,我想我不为过。


既然如些,也不用在讨论什么了。


我也很纳闷那帖子为什么被隐藏?我只有0分没有投票权限,要不我肯定是给良好或者精华的。。。
javaeye这里很长时间没有进行激烈的辩论了,很多帖子都没什么意义。开发人员之间互相辩论,吵个脸红脖子粗不是很正常吗?这里有多少人没有在开会时候拍过桌子的??这种争论才能相互学习嘛。。。
58 楼 ZHH2009 2009-12-04  
avaj 写道



我觉着投隐藏的并不是像你想象的看你不爽,虽然我没投隐藏...但是第一感觉:你对play的优点视而不见。

别的不说,光说说关于play的模板这一块吧:

你说斗鱼中可以很容易的使用freemarker,并举例说明:
import java.util.*;
import freemarker.template.*;

import java.io.PrintWriter;
import com.douyu.main.Controller;

@Controller
public class Test {
	public void index(PrintWriter out) {
	Configuration cfg = new Configuration();
        Template temp = cfg.getTemplate("test.ftl");
        Map root = new HashMap();
        root.put("user", "Big Joe");
        Map latest = new HashMap();
        root.put("latestProduct", latest);
        latest.put("url", "products/greenmouse.html");
        latest.put("name", "green mouse");
        temp.process(root, out);
        out.flush();
	}
}



这个在play中只需要这样写即可:

public class Test extends Controller{
      public static void index(Long id){
          User user = User.findById(id);
          render(user);
      }
}


模板中更加的简单,你可以直接使用user对象,这里不写了。而且play!的模板还支持继承(没有过freemarker,不知道是否也支持)

举这个例子不是说play与斗鱼谁更好,而只是想说明:作为一个开发人员,我不关心这个框架用了多么牛B的技术,我关心的是他是否有生产力?是否足够稳定和高效?

作为java web快速开发框架,play!具有rails一般的开发速度和开发体验,能够快速的将我的想法转化为实现。

希望douyu早日推出自己的1.0版本。早日成为一个真正有生产力的框架,加油。




如果只是因为这个原因,那么我只能说看我文章的人没有认真思考我说的话,
那个例子只是用来说明不用修改Douyu就能在Douyu中使用freemarker,
并不是用来对比freemarker跟Play的模板的。

我举的那个freemarker的例子只是顺手从freemarker的文档中摘录下来的,
freemarker也同样支持用JavaBeans喧染视图,
也有include、import还有macro,功能的完备性比Play的模板要强大得多。
你可以参考这里:
http://freemarker.sourceforge.net/docs/index.html

如果单纯是这种情况:
public class Test extends Controller{
      public static void index(Long id){
          User user = User.findById(id);
          render(user);
      }
}


现在的Douyu都已经实现了
@Controller
public class Test {
      public void index(Context c, User user){
          c.insert(user);//还能真接插入数据库
          c.out("user.html",user);
      }
}

这里也有例子(UI层连权限问题都涉及了)
http://www.iteye.com/topic/517796?page=1#1246289
57 楼 avaj 2009-12-04  
ZHH2009 写道

我的回复在
http://www.iteye.com/topic/540417

昨天花了一天写篇文章,刚上来JavaEye看看,10分钟前还好好的,一个投隐藏的都没有,
过了10分钟后马上变隐藏,我知道很多人看我不爽,
但无声无息的把我的文章隐藏掉实在让我觉得不可思义。


也需我文章中提到的用语过份了点:
比如"胶水框架"
和下面这句话:
ZHH2009 写道

之所以出现两者并存的情况只是因为Play是个胶水框架,
也许是Play的开发人员不想修改或没能力修改eclipse jdt。


胶水框架又不是贬意词,Python语言还常称为胶水语言呢,
胶水只不过是用来形容一个东西的特点罢了。

相比这篇文章的用语,我想我不为过。


既然如些,也不用在讨论什么了。



我觉着投隐藏的并不是像你想象的看你不爽,虽然我没投隐藏...但是第一感觉:你对play的优点视而不见。

别的不说,光说说关于play的模板这一块吧:

你说斗鱼中可以很容易的使用freemarker,并举例说明:
import java.util.*;
import freemarker.template.*;

import java.io.PrintWriter;
import com.douyu.main.Controller;

@Controller
public class Test {
	public void index(PrintWriter out) {
	Configuration cfg = new Configuration();
        Template temp = cfg.getTemplate("test.ftl");
        Map root = new HashMap();
        root.put("user", "Big Joe");
        Map latest = new HashMap();
        root.put("latestProduct", latest);
        latest.put("url", "products/greenmouse.html");
        latest.put("name", "green mouse");
        temp.process(root, out);
        out.flush();
	}
}



这个在play中只需要这样写即可:

public class Test extends Controller{
      public static void index(Long id){
          User user = User.findById(id);
          render(user);
      }
}


模板中更加的简单,你可以直接使用user对象,这里不写了。而且play!的模板还支持继承(没有过freemarker,不知道是否也支持)

举这个例子不是说play与斗鱼谁更好,而只是想说明:作为一个开发人员,我不关心这个框架用了多么牛B的技术,我关心的是他是否有生产力?是否足够稳定和高效?

作为java web快速开发框架,play!具有rails一般的开发速度和开发体验,能够快速的将我的想法转化为实现。

希望douyu早日推出自己的1.0版本。早日成为一个真正有生产力的框架,加油。

56 楼 ZHH2009 2009-12-04  
我的回复在
http://www.iteye.com/topic/540417

昨天花了一天写篇文章,刚上来JavaEye看看,10分钟前还好好的,一个投隐藏的都没有,
过了10分钟后马上变隐藏,我知道很多人看我不爽,
但无声无息的把我的文章隐藏掉实在让我觉得不可思义。


也需我文章中提到的用语过份了点:
比如"胶水框架"
和下面这句话:
ZHH2009 写道

之所以出现两者并存的情况只是因为Play是个胶水框架,
也许是Play的开发人员不想修改或没能力修改eclipse jdt。


胶水框架又不是贬意词,Python语言还常称为胶水语言呢,
胶水只不过是用来形容一个东西的特点罢了。

相比这篇文章的用语,我想我不为过。


既然如些,也不用在讨论什么了。
55 楼 linliangyi2007 2009-12-04  
俺也来做个“冷静”“客观”的比较,个人感觉,本帖充分说明楼主的技术水平不如斗鱼的作者!

(嘿嘿嘿,我承认我很坏)
54 楼 murainwood 2009-12-04  
NK_HansWang 写道
支持斗鱼之父
如果大家都用抱着只用别人(主要是国外的)的东西这样的想法,我们中国的软件开发何时才能进步?
有问题不怕,哪怕问题很严重,Java1.0的发布的时候还有东西没做好呢

哦?计算机科学底层薄弱的国家,你还指望软件开发走到世界前列?
这就好比现在的所谓的“四代机”,呵呵,发动机做不好,材料做不出,还能指望“四代机”在短时间内飞起来?就说材料那一块,国内号称航空材料最牛的XX大学,里面的人才啊,倒卖的倒卖,忽悠的忽悠,自杀的自杀..指望个P啊。

53 楼 NK_HansWang 2009-12-03  
支持斗鱼之父
如果大家都用抱着只用别人(主要是国外的)的东西这样的想法,我们中国的软件开发何时才能进步?
有问题不怕,哪怕问题很严重,Java1.0的发布的时候还有东西没做好呢
52 楼 solonote 2009-12-03  
你说的不错。
Play的价值观是追求Web程序的开发速度,所以舍弃了很多面向对象的特性,有很多地方是过程化语言的特性.
你是否应该选择Play也要根据你是否能接受Play的这一条价值观来决定。如果Play不能舍弃一部分OO特性,他也不可能做的那么cool.
我的意思是不能默认Play的价值观是真理,他在面向对象特性上确实有缺陷,这看你是否需要这些东西。

我认为Play玩的最酷的地方,是充分运用了ThreadLocal,抛弃了传统的IOC模式。
51 楼 Laynepeng 2009-12-03  
引用
Play的"缺陷和问题":
Play有很多的静态方法,在Controller和Model中都有,静态方法带来的最大麻烦就是难以继承,这是很恶心的一件事情,这一点可能是Play框架的一个硬伤,不知道以后会不会有更正.


关于这点,分成两部份,

1. Controller的static method,其实有人提过的。

下面试Bort的回答原文:

引用
Yes I know.
But the use of static methods has some advantages for other points.
For example the ability to reverse routes just by calling the action
method. And it help use in many byte code manipulation tricks. Perhaps
we could provide some helper for some use cases.


关于继承问题,如果按照Play!的哲学开发,应该问题不大,继续Bort的原话:

引用
Also, I'm not sure to understand what you try to do. What your route
file looks like ?

I understand to need to common validation, but I would do it this way:


public class BaseCrud extends Controller {
    protected static void validate(JPASupport o) {
       ...
    }
}
public class User extends BaseCrud {

     public static void create(User user) {
           validate(user);
           ...
     }
}


相关帖子:
http://groups.google.com/group/play-framework/browse_thread/thread/ed032c637f82b115/d95dc1315d4c458f?lnk=gst&q=controller+static#d95dc1315d4c458f

2. 对于Model层,这里很多static的方法吗?指哪些?find?

我个人感觉这一层的开发就是Active Record模式。。。

http://en.wikipedia.org/wiki/Active_record_pattern
50 楼 smiletuna 2009-12-03  
Arden 写道
现在play! 1.1 可以用scala写,我发现以后说不定还可以用python写~~


jython???
49 楼 helian 2009-12-03  
楼上几个都在灌水。
斗鱼作者跑哪去了,在准备比较帖么?
48 楼 mazzystar 2009-12-03  
koda 写道
最烦丫的说“貌似”,“赞”...

最烦“丫的” 当我灌水好了...
47 楼 Rossalee 2009-12-03  



我不是啥牛人,我只看看,我不说话。

防拍,防吵,防被人挑技术。



相关推荐

    斗鱼直播源数据的获取

    标题中的"斗鱼直播源数据的获取"是指通过特定方法抓取和解析斗鱼直播平台上的实时或历史数据。这通常涉及到网络爬虫技术,它是一种自动化程序,可以模拟用户行为,遍历网页并提取所需信息。 描述中提到的"已打包为...

    c#斗鱼直播弹幕实时获取_c#斗鱼直播弹幕实时获取_C#TCP_c#弹幕_c#斗鱼弹幕_kids7pg_

    4. 对斗鱼直播API和弹幕协议有深入理解,能够正确建立连接并解析弹幕信息。 5. 能够设计和实现用户界面,展示接收到的弹幕。 在压缩包文件"**C1**"中,可能包含了该项目的源代码文件,包括TCP客户端的实现、弹幕...

    斗鱼主页源代码

    斗鱼是中国知名的直播平台,其主页作为用户与平台交互的核心界面,承载了丰富的功能和精美的特效。在分析“斗鱼主页源代码”时,我们可以深入理解网页开发、前端技术、用户体验设计等多个IT领域的关键知识点。 1. ...

    斗鱼直播间增强插件(Tampermonkey).zip

    在斗鱼直播平台上,这款插件可能提供了如下的功能和知识点: 1. **JavaScript编程**:Tampermonkey的核心是JavaScript,这是一门广泛用于网页交互和动态内容处理的编程语言。用户通过编写或安装由他人分享的...

    python 斗鱼自动发送弹幕 图像匹配

    "斗鱼自动发送弹幕 图像匹配"这个项目是利用Python的图像识别和自动化功能来实现的一个具体应用。斗鱼是一个知名的直播平台,用户可以通过发送弹幕与主播和其他观众互动。在这个项目中,开发者创建了一个自动脚本来...

    斗鱼弹幕数据分析

    斗鱼弹幕数据分析是一种利用编程技术、统计方法和自然语言处理技术,对在线直播平台斗鱼上的用户产生的弹幕进行深入探究的过程。这种分析旨在揭示观众的行为模式、情感倾向以及对直播内容的反应,从而帮助主播优化...

    斗鱼第三方开放平台API文档v2.11

    斗鱼第三方开放平台API文档v2.11是武汉斗鱼网络科技有限公司提供的一个接口文档,主要服务于开发者,以便他们能够获取斗鱼直播平台的相关信息。这个文档包含了获取直播房间列表和详情、游戏分类等关键接口。 1. **...

    php - 斗鱼直播.rar

    在对接直播平台时,可能会频繁地获取房间信息,如果每次都直接从斗鱼服务器请求,会增加网络延迟和服务器负担。因此,使用缓存(如Redis或Memcached)来存储最近获取的房间信息,可以在短时间内快速响应用户请求,...

    斗鱼Html5播放器Chrome插件

    斗鱼Html5播放器Chrome插件,可自动取代斗鱼页面的Flash播放插件,使用html5进行播放。

    微信小程序源码-仿斗鱼直播小程序.zip

    微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播小程序.zip微信小程序源码-仿斗鱼直播...

    手机斗鱼图片爬虫

    最后,考虑到斗鱼网站可能会更新其网页结构,所以爬虫代码可能需要定期维护和更新,以适应网站的变化。同时,尊重网站的robots.txt文件和版权规定,确保合法、合规地进行数据抓取。 总的来说,"手机斗鱼图片爬虫"是...

    斗鱼获取实时弹幕/java代码

    为了实时获取这些弹幕,我们需要利用斗鱼提供的API接口,并通过编程实现数据的解析和处理。 首先,了解斗鱼API的基本概念是至关重要的。斗鱼提供了RESTful API,开发者可以通过HTTP请求与服务器进行交互。为了获取...

    斗鱼直播弹幕助手

    【斗鱼直播弹幕助手】是一款专为Windows操作系统设计的Java开发控制台应用程序,它的主要功能是实时获取并显示斗鱼直播平台上的观众发送的弹幕。作为一个专业的IT知识讲解,我们将深入探讨这款工具的工作原理、Java...

    斗鱼弹幕服务器第三方接入协议v1.6.21

    这个协议基于TCP服务,确保了数据传输的稳定性和可靠性,是斗鱼弹幕通讯的基础。 协议的核心内容包括以下几个方面: 1. **后台简介**: - **登陆授权**:第三方应用需要进行登陆授权,以便识别和验证身份,确保...

    斗鱼直播demo

    1. **直播技术**:斗鱼直播框架基于实时音视频传输技术,通过RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol)协议实现实时音视频数据的传输,确保用户能够流畅观看直播内容。...

    仿斗鱼app源码

    "仿斗鱼app源码"指的是开发者根据斗鱼APP的功能和界面设计,创建的一个类似的软件源代码。这种源码通常用于学习、研究或快速构建类似的直播应用。以下将对相关技术进行详细解析: 1. **前端界面设计**:仿斗鱼APP的...

    Swift仿斗鱼直播

    【Swift仿斗鱼直播】项目是一个使用Swift 4.0编程语言实现的iOS应用,旨在模仿斗鱼直播平台的功能和用户体验。这个项目对于学习iOS开发,特别是与视频流和直播技术相关的开发人员来说,是一个非常有价值的参考。下面...

    斗鱼 TV v1.6.9

    英雄联盟lol直播、穿越火线cf直播、dota2直播、激战2等各类热门游戏赛事直播随时观看,“斗鱼直播”打造全民游戏直播热潮! 【更新说明】 【注意】如遇到版本升级失败,请到斗鱼官网下载最新版本安装。 【优化】...

    仿斗鱼小程序

    【仿斗鱼小程序】是一个基于微信小程序开发的项目,旨在模仿知名的直播平台——斗鱼的界面和功能,供开发者学习和研究使用。这个项目的核心是通过编写小程序代码,实现类似斗鱼直播的用户体验,包括直播观看、用户...

Global site tag (gtag.js) - Google Analytics