我正在使用Socket.io将Digital Ocean Node.js服务器连接到iOS Swift应用程序。我一直在使用与ngrok相同的代码来构建应用程序,我现在才转向数字海洋。
连接事件正在发生,因为Swift应用程序正在通过连接事件(即尝试提取数据)进行检查。但是,没有调用服务器上的回调,因此没有调用服务器上的任何侦听器。
我正在进行SocketIOClient的常规实例化,没有任何其他参数:
var socket: SocketIOClient = SocketIOClient(socketURL: URL(string: "https://my_domain.com")!)
服务器上的连接功能如下所示:
socket.on("connect") {data, ack in }
我有以下服务器依赖项:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var listeners = require('./listeners');
var bson = require('bson')
var MongoClient = require('mongodb').MongoClient;
var apn = require('apn');
var ObjectID = require('mongodb').ObjectID;
var querystring = require('querystring');
服务器上的连接功能如下所示:
io.on('connection', function(client) {
console.log("connected")
})
问题是服务器上没有打印或发生任何事情。监听器在MongoClient.connect
范围内,但是Mongo连接成功并且项目正在该函数中打印,所以事情就是停止使用on('connection')
函数。
再次,这在ngrok上工作正常。
感谢任何帮助。