普通弄过nginx或者apache运行php的cgi、mod_php模式是不适合作为socket服务端的,你需要使用cli模式运行(就是直接在shell里面执行php serverphp)
可以使用Workerman框架或者swoole扩展来开发,推荐使用Workerman更简单,socket *** 作都封装好了,至于这两个东西网上资料比较多,你可以查一下
1、本小程序需要支持Android和iOS双平台,采用微信小程序开发平台进行开发。
2、本小程序的技术要求包括微信小程序的html、css、js、json、xml等技术,还需要以小程序框架为基础,使用微信开发者工具实现小程序开发。
3、本小程序需要使用WebSocket技术实现实时通信,以实现连接前端和后台服务器的通信,以实现小程序的实时数据更新。
4、本小程序需要使用微信官方提供的认证授权服务,以实现用户账号登录和授权验证,保证用户账号的安全。
5、本小程序需要使用微信小程序的云开发服务,实现界面的实时更新,以及后台的数据管理和数据存储功能。
6、本小程序需要使用微信小程序的支付功能,实现小程序的支付宝和微信支付功能,以便用户完成支付。
小程序的websocket协议是wss的,可以理解为ws+ssl,刚上线的时候只能够开一个websocket的入口,针对于单纯的聊天应用或者简单的交互应用是足够的,但如果有玩游戏的同时又要聊天,那么一个websocket就显然不够了,后来新增了一个sockettask,在使用小程序主websocket的同时,还可以使用sockettask新开websocket链接,相当于多开了个线程去通信。
更多具体的使用方法,可以参考微信小程序官方发布的开发文档。
简单描述一下多端通信,目前我使用的是websocket。
服务端我用C#做的winform,Fleck技术很成熟,服务端开启,客户端连接服务端,请求服务,websocket就支持多端通信的哦,你用android或者web或者其他平台都可以连接websocket的服务。向服务端发送消息,服务端就会分配消息。
1对1聊天这种事情是你想多了,现在真的没有人干这事,双方通过三次握手一个socket拨通协议的事情是不协和的,因为你不能随心所欲切换用户,而且每一次都要响应。所以我们是主动去连接服务器,从而都达到1对1,1对多,多对一的目的,可以聊天也可以把消息转换成指令。指令有哪些比如远程 *** 作,分享上传下载之类的。服务器接收到客户端的消息,指定目标客户端发送离线消息也可以。
对于域名和服务器的选择上,要看微信小程序制作方是否硬性需要进行绑定开发,如果没有规定绑定开发的话可以自主选择域名和服务器,像这个在阿里云或iisp都是有相关服务的。
具体方法:
先在utils文件夹粘贴一个io的js
然后 npm install wxapp-socket-io
config文件夹下新建一个socketjs,对socket连接进行封装,如下:
const io = require('/utils/iojs')
let url = 'wss://'
let wsStatus = false
let onSocket = null
export const connect = function(cb){
if(!onSocket){
onSocket = io(url)
onSocketon('connect', function (res) {
cb(true,onSocket)
wsStatus = true
})
setTimeout(function(){
if(!wsStatus){
cb(false,onSocket)
}
},10000)
}else{
cb(true,onSocket)
}
}
在要引用的页面调用,全局封装订阅方法
let openSocket = require('//config/socket')
let app = getApp()
let socket = null
Page({
data: {
zl: [[422, 400, 468, 834, 785, 446, 845, 517, 630, 797, 890, 529, 553, 425, 469, 470, 837, 841, 521, 525], [422, 400, 468, 834, 785, 446, 845, 517, 630, 797, 890, 529, 553, 425, 469, 470, 837, 841, 521, 525]]
},onLoad: function () {
let that = this;
//socket调用
openSocketconnect(function (status, ws) {
if (status) {
socket = ws thissubscribe('zl')//对封装好对订阅方法进行调用
socketon('broadcast', function (msg) {//广播
consolelog("broadcast");
consolelog(msg);
})
} else {
alert("socket 连接失败")
}
});
},subscribe: function (type) {
if (socket) {
let eis = thisdata[type]
if (eis && eislength > 0) {
let param = {//仅供参考,根据接口自行更改
eis: eisjoin(',')
}
socketemit('subscribe', JSONstringify(param));
}
}
}});
注:创建一个 WebSocket 连接;一个微信小程序同时只能有一个 WebSocket 连接,如果当前已存在一个 WebSocket 连接,会自动关闭该连接,并重新创建一个 WebSocket 连接。
以上就是关于微信小程序websocket和php通信全部的内容,包括:微信小程序websocket和php通信、小贩摊位预约小程序技术要求、微信小程序 websocket sockettask等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)