how to connect socket_io_client via https in flutter? - flutter

I work with socket_io_client. So how do I connect the https socket in my application.
below is code example
Socket socket = io('https://abcd.co.in:1000005',
OptionBuilder().setTransports(['websocket']).build());
socket.connect();
socket.onConnect((_) {
print('connect');
socket.emit("Client", [MyConstants.CtName]);
socket.emit("room", [MyConstants.CtName]);
});
I am use socket_io_common: ^2.0.0 because of my flutter channel is flutter channel stable 2.2.3.
also I am use socket_io_client: any. it is work fine with my other http socket url

Related

Flutter Signalr_core longpolling connection get closing automatically?

TransportType websockets is not working on Flutter web so i am using longpolling for web,but its connection gets closing automatically ,how to stop closing connection?
HubConnectionBuilder()
.withUrl(url, HttpConnectionOptions(client: httpClient,
accessTokenFactory: getToken, transport: kIsWeb ? HttpTransportType.longPolling : HttpTransportType.webSockets))
.build();

How to connect wss in flutter web?

I try to connect a socket-io with flutter. Before, our server-side developer give me an URL without SSL-Certificate and everything is worked. But now, our server has SSL-Certificate, I can't connect to that socket-io. This is my code to connect:
Socket socket = io(
'wss://server-address',
OptionBuilder()
.setTransports(['websocket'])
.disableAutoConnect()
.build());
socket.connect();
socket.onConnect((_) {
print('socket connect');
});
socket.onConnectError((data) => print('socket error = ' + data.toString()));
I get this error:
socket error = {msg: websocket error, desc: null, type: TransportError}
I try to deploy my web application on a secure host like firebase but still have problems. In inspect of firefox, I also see this error:
Firefox cant establish a connection to the server
How to fix this problem? How to connect to secure socket-io address in flutter web?

How to add headers to socketIO in flutter

I try to connect socket io in dart. I use socket_io_client: ^2.0.0-beta.4-nullsafety.0 for connection and use this code to connect:
Socket socket = io(
'$server_address',
OptionBuilder()
.setTransports(['websocket'])
.disableAutoConnect()
.setExtraHeaders({'authorization': "$token"})
.build());
socket.connect();
And it connects successfully. But, my headers (authorization) are not sent to the server. I also check my request and response with inspect of google chrome to make sure:
So, How can I send the headers with socket io?

flutter app can not connect to a webSocket

I am building a flutter app which needs to connect to the server and exchange data using websocket. The server is in JAVA and using SockJs and Stomp to implement this functionality.
I am using Stomp dart client and webSocket packages from pub.dev/packages.
This is the part of my code where I am trying to connect :
clientConnect() async {
String cookie = await storage.read(key: "cookie");
final stompClient = StompClient(
config: StompConfig(url: 'ws://192.168.0.13:8080/....', onConnect: onConnect,
webSocketConnectHeaders: {"cookie": cookie }));
stompClient.activate();
}
The problem I am facing is, my flutter app is not able to connect to the server and throws the this error.
WebSocketException: Connection to 'http://192.168.0.12:8080/....' was not upgraded to websocket
Late answer (maintainer of the stomp package):
Since you seem to be using StompJS on the java-side you need to use the special StompJS config in the client. Here is the example from the documentation:
https://pub.dev/packages/stomp_dart_client#use-stomp-with-sockjs
StompClient client = StompClient(
config: StompConfig.SockJS(
url: 'https://yourserver',
onConnect: onConnectCallback
)
);

Dart socket.io self signed certificate

I am using this Dart Socket IO client library. I have set up a Socket.IO server with a self-signed certificate on port 443. When I try to connect, the error message is:
(OS Error:
CERTIFICATE_VERIFY_FAILED: self signed certificate(handshake.cc:352))
How do i get the client or Dart to ignore the error prompt from self-signed certificates?
I know that the NodeJS equivalent of the socket.io allows it by setting the variable rejectUnauthorized to false. But it seems no such variable in Dart...
This is the code used in Dart to initialize and connect to the server:
IO.Socket socket = IO.io('https://localhost', {
'transports': ['websocket'],
'reconnectionAttempts': 1,
'rejectUnauthorized': false
});