折腾了一下,搜索了一其它朋友的问答,发现了一个叫‘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; }
小程序开发中不能使用第三方的websocket库吗?比如socket.io如题 服务端已经用socket.io实现了一个了,现在对接小程序端,发现没办法直接使用,好像是socket.io有它自己的一套协议。要配置它专门的客户端库去使用。但是看了一下小程序的API,只能通过wx.connectSocket的方式去生成socket连接? 没办法直接用socket.io-client库吗?
2023-11-04