物理设备无法连接到我的Web套接字。我尝试了3种不同的手机和不同的网络。不过,它可以与我的模拟器正常工作。除了从客户端上的socket.io发出的标准“无法连接到服务器”之外,我没有收到任何错误消息。
我不知道这是否是有效的指标,但我也尝试使用带有以下参数的https://www.websocket.org/:
wss://converzone.htl-perg.ac.at:5134
我在那里收到“错误:未定义断开连接”。
我正在使用运行Ubuntu 16.04的ubuntu服务器。 Web套接字来自socket.io,我在客户端上使用Swift进行编码,在服务器上使用Node.js进行编码。整个事情都在我学校的服务器上运行。
// Here is an array of all connections to the server
var connections = {};
io.sockets.on('connection', newConnection);
function newConnection(socket) {
console.log(socket.id + " connected.");
socket.on('add-user', function(user) {
connections[user.id] = {
"socket": socket.id
};
});
socket.on('chat-message', function(message) {
console.log(message);
if (connections[message.receiver]) {
console.log("Send to: " + connections[message.receiver].socket);
//io.sockets.connected[connections[message.receiver].socket].emit("chat-message", message);
io.to(connections[message.receiver].socket).emit('chat-message', message);
} else {
console.log("Send push notification")
sendPushNotificationToIOS(message.senderName, message, message.deviceToken, message.sound)
}
});
//Removing the socket on disconnect
socket.on('disconnect', function() {
console.log("The client disconnected");
console.log("The new list of clients is: " + connections)
for (var id in connections) {
if (connections[id].socket === socket.id) {
delete connections[id];
break;
}
}
})
}
请理解,这个问题对我来说似乎很奇怪。我在plist中更改了AppTransferProtocol,并将端口从3000更改为5134。告诉我,除了(最小)服务器代码之外,还有什么代码似乎有意义。