用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

微客吧 首页 教程 微信小程序 新手教程 查看内容

微信小程序聊天室(websocket )(PHP)

纸飞机 2018-3-8 09:33

作者:奋斗放个,来自原文地址 //utils文件夹下websoctet.js文件var url = 'ws://地址端口';function connect(user, func) { wx.connectSocket({ url: url, header: {"content-type":'application/x-www-form ...

作者:奋斗放个,来自

原文地址


//utils文件夹下websoctet.js文件

  1. var url = 'ws://地址端口';
  2. function connect(user, func) {
  3. wx.connectSocket({
  4. url: url,
  5. header: {"content-type":'application/x-www-form-urlencoded'}
  6. });
  7. wx.onSocketOpen(function (res) {
  8. send('{"type":"login","client_name":"'+user.nickName+'","room_id":"1"}')
  9. });
  10. //接受消息
  11. wx.onSocketMessage(func);
  12. }
  13. //发送消息
  14. function send(msg) {
  15. wx.sendSocketMessage({ data: msg });
  16. }
  17. module.exports = {
  18. connect: connect,
  19. send: send
  20. }

//具体页面.js文件内容:

  1. var websocket = require('../../utils/websocket.js');
  2. //事件处理函数
  3. add: function (e) {
  4. websocket.send('{"type":"say","from_client_id":"'+user.nickName+'","to_client_id":"all","content":"'+this.data.message+'"}')
  5. },
  6. onLoad: function () {
  7. var that = this
  8. //调用应用实例的方法获取全局数据
  9. app.getUserInfo(function (userInfo) {
  10. user = userInfo;
  11. websocket.connect(user, function (res) {
  12. text = that.encodeStr(res.data) + "\n";
  13. console.log(res)
  14. that.setData({
  15. text: text
  16. });
  17. // websocket.send('{"type":"pong"}');
  18. })
  19. })
  20. },

//下面方法很好玩,因为使用的服务器 是开源的PHP服务器,所以微信接收到的聊天室中文内容是ASCII编码,所以经过此方法可以转换。

  1. encodeStr: function (str) {
  2. var character = str.split("\\u");
  3. var native1 = character[0];
  4. for (var i = 1; i < character.length; i++) {
  5. var code = character[i];
  6. native1 += String.fromCharCode(parseInt("0x" + code.substring(0, 4)));
  7. if (code.length > 4) {
  8. native1 += code.substring(4, code.length);
  9. }
  10. }
  11. return native1
  12. },
鲜花
鲜花
握手
握手
雷人
雷人
路过
路过
鸡蛋
鸡蛋
分享至 : QQ空间
收藏