<?php
$server = new swoole_websocket_server("0.0.0.0", 9501);
$server->on('open', function (swoole_websocket_server $server, $request) {
file_put_contents( __DIR__ .'/log.txt' , $request->fd);
});
$server->on('message', function (swoole_websocket_server $server, $frame) {
global $client;
$data = $frame->data;
$fd=$frame->fd;
$m = file_get_contents( __DIR__ .'/log.txt');
for ($i=1 ; $i<= $m ; $i++) {
echo PHP_EOL . ' i is ' . $i . ' data is '.$data . ' m = ' . $m;
if($i->$fd){
$arr=json_decode($data,true);
$arr['
name
']="我";
$arr['class']=1;
$data=json_endode($arr);
}
$server->push($i, $data );
}
});
$server->on('close', function ($ser, $fd) {
echo "client {$fd} closed\n";
});
$server->start();
接下来XML页面
<view>
<view class="sendmessage">
<input id="message" bindinput="inputMessage" placeholder="请输入聊天内容"></input>
<button bindtap="sendMessage">发送</button>
</view>
</view>
<view>
<scroll-view scroll-y="true" class="history">
<view wx:for="{{message}}">
<block wx:if="{{item.class == 1}}">
<view class="user">{{item.name}}说:{{item.msg}}</view>
</block>
<block wx:else>
<view class="service">{{item.name}}说:{{item.msg}}</view>
</block>
</view>
</scroll-view>
</view>
//获取应用实例
var app = getApp()
var socketOpen="false"
var inputMessage=""
var i=0
var msgInfo={}
Page({
data: {
message:""
},
//获取输入框信息
inputMessage: function(e) {
inputMessage=e.detail.value
},
//点击事件
sendMessage:function(){
if (socketOpen) {
var nickname = wx.getStorageSync('nickname')
if (nickname=="") {
nickname="游客"
}
var data1='{"name":"'+nickname+'","msg":"'+inputMessage+'"}'
wx.sendSocketMessage({
data:data1
})
}
},
//页面加载事件
onLoad: function () {
var that=this
wx.connectSocket({
url: 'ws://192.168.1.181:9502/swoole/ws_server.php'
})
wx.onSocketOpen(function(res) {
socketOpen="true"
})
wx.onSocketMessage(function(res) {
i=i+1
//console.log(res)
var re=JSON.parse(res.data)
msgInfo[i]=re
console.log(msgInfo)
if(res.data){
that.setData({
message:msgInfo
})
}
})
}
})