Comments (4)
val hostname = this?.host?.canonicalHostName <==== canonicalHostName will return either IP address or hostname on the android implementation
from flutter_nsd.
the current Windows implementation returns hostnames, such as 'Android-5.local' when provided by the MDNS query results. However some windows hosts do not have the ability to resolve such a hostname and to establish a connection (apparently this ability relies on 3rd party packages such as Bonjour being installed).
Suggested fix:
short-term: Windows implementation will always return an IP address string for hostname
long-term: the NsdServiceInfo object can be expanded to include:
- ipv4
- ipv6
in addition to hostname and port
Sounds like a plan 👍
val hostname = this?.host?.canonicalHostName <==== canonicalHostName will return either IP address or hostname on the android implementation
OK. That's good to know.
How about the iOS/MacOS implementation?
from flutter_nsd.
This comment is just for tracking what's done:
Short term solution introduced in PR #21
from flutter_nsd.
the current Windows implementation returns hostnames, such as 'Android-5.local' when provided by the MDNS query results. However some windows hosts do not have the ability to resolve such a hostname and to establish a connection (apparently this ability relies on 3rd party packages such as Bonjour being installed).
Suggested fix:
short-term: Windows implementation will always return an IP address string for hostname
long-term: the NsdServiceInfo object can be expanded to include:
- ipv4
- ipv6
in addition to hostname and portSounds like a plan 👍
val hostname = this?.host?.canonicalHostName <==== canonicalHostName will return either IP address or hostname on the android implementation
OK. That's good to know. How about the iOS/MacOS implementation?
One would have to test. But on iOS presumably it won't matter as MDNS is native to iOS and the hostname will always be resolvable. this particular complication is specific to Windows. I found out even more - the hostname may be resolvable within the Flutter app but when opened in an external browser (Chrome) is still not resolvable. Or Flutter may resolve it to an ipv6 which cannot be loaded into chrome either. So now for the purpose of opening external browsers I force resolve it to an ipv4 inside my app before constructing the url. But that is independent from the plugin.
from flutter_nsd.
Related Issues (20)
- Notify when service is lost HOT 5
- NetServiceBrowser is deprecated on iOS/MacOS
- Not getting any output from example app even though run shows servers HOT 3
- Windows: TXT records are returned as string instead of UInt8List, causing failure
- Windows: txt records are sent as [key: key] instead of [key: value] HOT 1
- Stream<NsdServiceInfo> doesn't add service If msdn server hass service txt is added HOT 5
- NsdServiceInfo Class should have IP HOT 3
- java.lang.IllegalArgumentException: listener not registered HOT 3
- Any plans for Linux support? HOT 1
- The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher HOT 4
- stopDiscovery() stops, but generates an error HOT 2
- missing permission for some Android versions HOT 2
- Error on executing command 'flutter build windows' HOT 2
- stopDiscovery Not working giving below exception HOT 4
- Windows build is failing
- startDiscoveryFailed every time HOT 1
- MacOS and iOS not returning any hostAddress HOT 1
- getting NsdErrorCode.startDiscoveryFailed when hot restart app
- Services are not discovered on Android HOT 2
- On Android, the IP address is returned in the hostname field of NsdServiceInfo
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flutter_nsd.