小程序
小游戏
企业微信
微信支付
扫描小程序码分享
如题
服务端已经用socket.io实现了一个了,现在对接小程序端,发现没办法直接使用,好像是socket.io有它自己的一套协议。要配置它专门的客户端库去使用。但是看了一下小程序的API,只能通过wx.connectSocket的方式去生成socket连接?
没办法直接用socket.io-client库吗?
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
折腾了一下,搜索了一其它朋友的问答,发现了一个叫‘weapp.socket.io’的库
不过在使用它的时候还是有坑,不能直接使用官方的库。
import io,{Socket} from 'weapp.socket.io'
也就是这样写可能因为版本太旧,而不能正常工作
要把源码下载下来,再重新编译出一个JS文件,然后直接在工程里引入这个JS文件
import io,{Socket} from './weapp.socket.io.wx.js'
另外分享一个点
因为我的websocket服务是host到集群中,再通过nginx做了反向代理。比如我的nginx的端口是8080.而websocket服务的端口是9001. 在nginx中配置了一个 /chat路径的反向代理指向websocket服务
如果我们直接使用
io("http://localhost:8080/chat")
这样会连接到一个名为/chat 的命名空间里。但是服务端并没有那个命名空间。这里的/chat只是为了nginx重定向用的。
所以这里要改成
io(http://localhost:8080,{path:"/chat/socket.io"})
然后在nginx中配置重定向
location /chat { rewrite ^/chat/(.*) /$1 break; proxy_pass http://host.docker.internal:9001; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_cache_bypass $http_upgrade; }
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
小程序可以引npm 包,理论上可以,没试过
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
折腾了一下,搜索了一其它朋友的问答,发现了一个叫‘weapp.socket.io’的库
不过在使用它的时候还是有坑,不能直接使用官方的库。
import io,{Socket} from 'weapp.socket.io'
也就是这样写可能因为版本太旧,而不能正常工作
要把源码下载下来,再重新编译出一个JS文件,然后直接在工程里引入这个JS文件
import io,{Socket} from './weapp.socket.io.wx.js'
另外分享一个点
因为我的websocket服务是host到集群中,再通过nginx做了反向代理。比如我的nginx的端口是8080.而websocket服务的端口是9001. 在nginx中配置了一个 /chat路径的反向代理指向websocket服务
如果我们直接使用
io("http://localhost:8080/chat")
这样会连接到一个名为/chat 的命名空间里。但是服务端并没有那个命名空间。这里的/chat只是为了nginx重定向用的。
所以这里要改成
io(http://localhost:8080,{path:"/chat/socket.io"})
然后在nginx中配置重定向
location /chat { rewrite ^/chat/(.*) /$1 break; proxy_pass http://host.docker.internal:9001; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_cache_bypass $http_upgrade; }
小程序可以引npm 包,理论上可以,没试过