Guest User

Untitled

a guest
Jan 23rd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. $redis = LRedis::connection();
  2. $data = [
  3. 'message' => $msg,
  4. 'user' => $auth,
  5. 'music'=>$music,
  6. 'target_user'=>$target_user
  7. ];
  8. $redis->publish('message', json_encode($data));
  9.  
  10. var app = require('express')();
  11. var server = require('http').Server(app);
  12. var io = require('socket.io')(server);
  13. var redis = require('redis');
  14. var apn = require('apn');
  15. var request = require('request');
  16. var auth_user_id = null;
  17. var mysql = require('mysql');
  18.  
  19. var con = mysql.createConnection({
  20. host: "localhost",
  21. user: "root",
  22. password: "",
  23. database: "database"
  24. });
  25.  
  26. con.connect(function(err) {
  27. if (err) throw err;
  28. console.log("Database Connected!");
  29. });
  30. var options = {
  31. token: {
  32. key: "app-keys/APNsAuthKey_U3QV9H86BR.p8",
  33. keyId: "keyId",
  34. teamId: "teamid",
  35. cert: "app-keys/musicChatAppDevelopment.pem",
  36. },
  37. development: true,
  38. production: false,
  39. };
  40. var apnProvider = new apn.Provider(options);
  41. server.listen(8890);
  42. io.on('connection', (socket) => {
  43. var auth_user_id = socket.handshake.query.auth_user_id;
  44. console.log("client connected");
  45. console.log("Client Socket id--"+socket.id+"-----User Id----"+auth_user_id);
  46. var redisClient = redis.createClient();
  47. redisClient.subscribe('message');
  48. if(auth_user_id>0) {
  49. var sql = "UPDATE users SET socket_id ='"+socket.id+"' WHERE id ="+auth_user_id;
  50. con.query(sql, function (err, result) {
  51. if (err) throw err;
  52. console.log(result.affectedRows + " record(s) updated");
  53. });
  54. }
  55. redisClient.on('message', (channel, data) => {
  56. console.log(channel);
  57. let data_= JSON.parse(data);
  58. let message_ = data_.message;
  59. let deviceToken = data_.target_user['ios_token'];
  60. if(data_.user['id']!=data_.target_user['id']) {
  61. console.log(data_.target_user['ios_token']);
  62. var note = new apn.Notification();
  63. note.expiry = Math.floor(Date.now() / 1000) + 3600; // Expires 1 hour from now.
  64. note.badge = 0;
  65. note.sound = "ping.aiff";
  66. note.alert = {
  67. "title" : data_.user['first_name'],
  68. "body" : message_,
  69. };
  70. note.payload = { "aps" : {
  71. "alert" : {
  72. "title" : data_.user['first_name'],
  73. "body" : message_
  74. }
  75. }
  76. }
  77. note.topic = "com.charpixel.hellodemo";
  78. console.log(note);
  79. let socketId = data_.target_user['socket_id'];
  80. apnProvider.send(note, deviceToken).then( (result) => {
  81. console.log(JSON.stringify(result));
  82. });
  83. console.log("Target User Socket id "+data_.target_user['socket_id']);
  84. socket.broadcast(data_.target_user['socket_id']).emit(channel, data);
  85. io.to(socketId).emit(channel,data);
  86.  
  87. }
  88.  
  89. });
  90. socket.on('disconnect', () => {
  91. redisClient.quit();
  92. });
  93. });
  94.  
  95. var ip = '<?php echo config('app.current_ip'); ?>:8890?auth_user_id='+JSON.parse(user_id)['id'];
  96. console.log("Curent_URL"+ip);
  97. var socket = io.connect(ip);
  98. socket.on('message', function (data) {
  99. });
Add Comment
Please, Sign In to add comment