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

想写一个网页聊天程序,需要哪些知识?

  •  1
     
  •   vJianZhen · 2015-05-12 22:09:53 +08:00 · 5513 次点击
    这是一个创建于 3487 天前的主题,其中的信息可能已经有所发展或是发生改变。

    相当于弄一个网页版的微信,但是当然功能没那么强大,现在想的就是把它实现了,细节以后再抛光。

    那特别需要哪些网络编程的知识吗?
    有没有一个相对规范的工作流程?

    用Python3 + Django。

    38 条回复    2015-05-16 20:27:57 +08:00
    hellosnow
        1
    hellosnow  
       2015-05-12 22:15:48 +08:00 via Android
    推荐使用websocket
    shuiniushushu
        2
    shuiniushushu  
       2015-05-12 22:19:02 +08:00
    websocket+1
    vJianZhen
        3
    vJianZhen  
    OP
       2015-05-12 22:35:18 +08:00
    @hellosnow
    @shuiniushushu

    这个词我第一次听。。。谢谢你们给的启发。
    刚才搜了一下,好似 微博私信,WebQQ都是用它建立起来的,真的很强大!
    谢谢!
    Axurez
        4
    Axurez  
       2015-05-12 22:55:52 +08:00
    timothyye
        5
    timothyye  
       2015-05-12 23:02:33 +08:00
    nodejs+websocket
    a6377508
        6
    a6377508  
       2015-05-12 23:48:15 +08:00 via Android
    websocket +1,网上很多例子
    senghoo
        7
    senghoo  
       2015-05-13 00:20:47 +08:00 via iPad
    Websocket + tornado . Tornado官方就有个demo
    robinWu
        8
    robinWu  
       2015-05-13 00:23:19 +08:00
    websocket+1
    robinWu
        9
    robinWu  
       2015-05-13 00:23:58 +08:00
    websoket+1
    hellomsg
        10
    hellomsg  
       2015-05-13 00:27:27 +08:00
    websocket(html5)
    或socket.io(没用过)
    或长轮训
    flowfire
        11
    flowfire  
       2015-05-13 06:05:19 +08:00
    websocket +1 ,前两天还在研究呢,总算是测试通过了。。。
    http://bingkubei.tk/?p=76
    这边有php server的源码。。。你可以去看看
    clino
        12
    clino  
       2015-05-13 07:22:35 +08:00 via Android
    这个我记得是 uliweb 版 websocket chatroom 的例子
    clino
        13
    clino  
       2015-05-13 07:23:03 +08:00 via Android
    链接还没附上就发了 https://github.com/limodou/chatroom
    mtmobile
        14
    mtmobile  
       2015-05-13 07:47:54 +08:00 via Android
    环信
    mikumikumoe
        15
    mikumikumoe  
       2015-05-13 07:48:16 +08:00
    @flowfire beikubei 23333
    easynoder
        16
    easynoder  
       2015-05-13 07:54:08 +08:00
    websocket + nodejs,之前做过,开发效率挺高的
    vJianZhen
        17
    vJianZhen  
    OP
       2015-05-13 08:37:07 +08:00
    @senghoo 可我学的是django。。
    vJianZhen
        18
    vJianZhen  
    OP
       2015-05-13 08:39:19 +08:00
    @easynoder 请问有demo页吗?
    vJianZhen
        19
    vJianZhen  
    OP
       2015-05-13 08:43:33 +08:00
    @mtmobile 想自己写
    isayme
        20
    isayme  
       2015-05-13 09:13:33 +08:00
    原理就是楼上提到的WebSocket, NodeJS里的socket.io是用于写服务端的.
    不过不想写服务端的话可以用LeanCloud的服务, 他们有实时通信SDK: https://leancloud.cn/docs/js_realtime.html
    我写的简单的例子: http://onchat.isayme.org/
    单页面, Backbone+RequireJS实现, 源码: https://github.com/isayme/online-chat
    xlrtx
        21
    xlrtx  
       2015-05-13 10:18:58 +08:00
    agar就是用websocket写的
    crabRunning
        22
    crabRunning  
       2015-05-13 10:32:13 +08:00 via Android
    swoole,webIMso easy
    kzzhr
        23
    kzzhr  
       2015-05-13 11:24:25 +08:00 via Android
    安全过滤,这个非常重要。
    不好一个聊天室的人全要完蛋!
    hxtheone
        24
    hxtheone  
       2015-05-13 11:27:29 +08:00
    nodejs + socket.io,这酸爽,谁用谁知道
    vJianZhen
        25
    vJianZhen  
    OP
       2015-05-13 11:34:07 +08:00
    @kzzhr 安全过滤?具体讲讲。
    vJianZhen
        26
    vJianZhen  
    OP
       2015-05-13 11:36:22 +08:00
    @hxtheone 这两样和django+python是协同的关系,还是可替代的解决方案?
    quix
        27
    quix  
       2015-05-13 12:11:39 +08:00
    配置下 rabbitmq 玩玩
    qw7692336
        28
    qw7692336  
       2015-05-13 12:26:04 +08:00
    @vJianZhen webQQ并不是,webQQ是通过轮询实现的
    quix
        29
    quix  
       2015-05-13 12:28:15 +08:00
    有一个 stack 楼主可以看看 http://crossbar.io/
    gamexg
        30
    gamexg  
       2015-05-13 13:01:38 +08:00 via Android
    这两样和django+python是协同的关系,还是可替代的解决方案?

    独立方案,但是可以协同使用。
    hxtheone
        31
    hxtheone  
       2015-05-13 13:10:21 +08:00
    @vJianZhen 算是可替代的解决方案吧,基本上是前后端一手抓了,至于可不可以和python协同开发,我没有过这样的经验,不敢乱说
    gamexg
        32
    gamexg  
       2015-05-13 13:32:44 +08:00
    python 向 socket.io 发消息可以用:

    https://github.com/ziyasal/socket.io-python-emitter
    使用官方的接口,但是需要 redis 。

    https://github.com/invisibleroads/socketIO-client
    socket.io python客户端库 无需 redis ,我记得还可以接受消息。

    socket.io 向 django 发消息:

    https://github.com/danwrong/restler
    REST client library for node.js
    rayyang88
        33
    rayyang88  
       2015-05-13 19:47:58 +08:00
    node + websocket 或者 go + websocket
    vJianZhen
        34
    vJianZhen  
    OP
       2015-05-13 22:05:39 +08:00
    @xlrtx agar是什么?搜了没结果
    vJianZhen
        35
    vJianZhen  
    OP
       2015-05-13 22:06:56 +08:00
    @qw7692336 我看了一个websocket的教程,里面这样写的,我也没去求证
    那微信网页版用的哪个?
    vJianZhen
        36
    vJianZhen  
    OP
       2015-05-13 22:11:30 +08:00
    @quix 乍一看好炫啊!谢谢
    easynoder
        37
    easynoder  
       2015-05-14 20:10:07 +08:00
    @vJianZhen 代码已经留给公司了。。
    xlrtx
        38
    xlrtx  
       2015-05-16 20:27:57 +08:00
    @vJianZhen agar.io 一个网页游戏
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4030 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:17 · PVG 18:17 · LAX 02:17 · JFK 05:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.