欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 使用socket.io搭建简单聊天室

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:736

高端HTML5响应式企业通用网

2020-05-06   浏览:517

html5响应式外贸网站英文版

2020-05-08   浏览:505

HTML5自适应律师工作室类网

2020-04-04   浏览:501

HTML5影视传媒文化公司类网

2020-05-12   浏览:495

使用socket.io搭建简单聊天室

发布时间:2020-11-30  

一、demo

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

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

1,下载https://github.com/wxsocketio/wxapp-socket-io

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

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

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

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

 

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

5000是在第2步指定的端口:  http.ListenAndServe(":5000", nil)

/socket.io/是通过它指定的:  http.Handle("/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 client

socket.emit('message', "this is a test");

// sending to all clients except sender

socket.broadcast.emit('message', "this is a test");

// sending to all clients in 'game' room(channel) except sender

socket.broadcast.to('game').emit('message', 'nice game');

// sending to all clients, include sender

io.sockets.emit('message', "this is a test");

// sending to all clients in 'game' room(channel), include sender

io.sockets.in('game').emit('message', 'cool game');

// sending to individual socketid

io.sockets.socket(socketid).emit('message', 'for your eyes only');

--

 

main.go:

so.Join("chat")