美文网首页微信小程序开发微信开发运营WEB前端程序开发
【小程序入门集锦】7,使用socket.io搭建简单聊天室

【小程序入门集锦】7,使用socket.io搭建简单聊天室

作者: 石桥码农 | 来源:发表于2017-04-06 18:33 被阅读975次

    一、demo

    socket.io在实时互动功能上是一个较为成熟的技术解决方案,有多种语言的实现。今天,我们使用两个第三方类库,一个client端,一个server端,在小程序中搭建一个简单的聊天室。

    简单易用,是http://socket.io的基本特征。

    1,下载wxsocketio/wxapp-socket-io

    解压,在weapp_demo目录建立小程序项目。

    2,安装:go gethttp://github.com/googollee/go-socket.io

    然后,使用我们写好的server/main.go文件,运行:go run main.go

    3,修改小程序项目app.js文件中的socket地址

    const socket = io("ws://localhost:5000/http://socket.io/")

    5000是在第2步指定的端口:

    http.ListenAndServe(":5000", nil)

    /http://socket.io/是通过它指定的:

    http.Handle("/http://socket.io/", server)

    可以下载我们打包的代码:链接:https://pan.baidu.com/s/1c2vLIfA密码: asfb

    二、说明

    小程序index.js

    socket.on('login', function(msg) {

    wx.showToast({

    title: '登录成功\n用户名:'+msg,

    icon: 'success',

    duration: 1000

    })

    setTimeout(

    ()=>{

    wx.navigateTo({

    url: '../room/index',

    })

    },

    1000

    )

    socket.on("login"),代表监听来自server端的login事件,包括broadcast事情和emit事件。

    broadcast和emit有什么区别?

    前者是发给所有人(除了当前客户端自己),emit是只回复给当前客户端自己。

    在main.go有:

    so.Emit("login", so.Id())

    这是发给小程序当前客户端的。

    附详情说明:

    服务器信息传输

    // send to current request socket clientsocket.emit('message', "this is a test");// sending to all clients except sendersocket.broadcast.emit('message', "this is a test");// sending to all clients in 'game' room(channel) except sendersocket.broadcast.to('game').emit('message', 'nice game');// sending to all clients, include senderio.sockets.emit('message', "this is a test");// sending to all clients in 'game' room(channel), include senderhttp://io.sockets.in('game').emit('message', 'cool game');// sending to individual socketidio.sockets.socket(socketid).emit('message', 'for your eyes only');

    --

    main.go:

    so.Join("chat")

    chat是分组名称,相当于聊天室房间,藉此可实现chat room功能。

    ---

    我在知乎开了一个live,4月22日晚(周六)8点半我在知乎与大家见面:

    【0基础周末学习小程序开发】

    知乎 Live - 全新的实时问答

    在【哲学李论】公众号回复"0基础周末学习小程序开发",可以免费领券,限量500名。

    在微信公众号哲学李论,回复“小程序入门集锦”可以看到这个系列的所有文章。

    知乎同名专栏:0基础小程序开发教程 - 知乎专栏

    本文同时在多个平台、社群转发,在公众号回复“社群”可与其它艺友热情连接。

    如果觉得本文还行,请转发到朋友圈让更多朋友看到。

    如果您看到有料的文章,欢迎与10W艺友分享,荐文热线:liyi@rixingyike.com。

    相关文章

      网友评论

        本文标题:【小程序入门集锦】7,使用socket.io搭建简单聊天室

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