0 purchases
cc web socket
CC Web Socket #
CC Web Socket provides a robust and flexible WebSocket client for Flutter applications. This package allows you to easily manage and customize WebSocket connections.
For more detailed information:
https://ferhaterdem.medium.com/building-real-time-flutter-apps-with-cc-web-socket-c8429fa5c83c
Features #
Easy Initialization: Quickly establish WebSocket connections with simple configuration options.
Timeout and Ping Settings: Customize connection timeout and ping intervals.
Automatic Reconnection: Automatically reconnect when the connection is lost.
Detailed Logging: Options for logging connection status, requests, and responses.
Modular Structure: Extend functionality with plugins and modules.
Installation #
Add this package to your project by including the following line in your pubspec.yaml file:
dependencies:
cc_web_socket: ^1.0.0
copied to clipboard
Usage #
Initialization #
To initialize CCWebSocket, use the following code:
CCWebSocket.init(
socketOptions: CCSocketOptions(
uri: Uri(
scheme: "wss",
host: "echo.websocket.org",
port: 443,
path: ".ws",
),
connectTimeout: const Duration(seconds: 5),
pingInterval: const Duration(seconds: 120),
requestTypeName: "request_type",
autoConnect: true,
),
loggingOptions: CCSocketLogging(
logEnabled: true,
onConnection: (prompt) {},
onReconnection: (prompt) {},
onClosed: (prompt) {},
onRequest: (prompt) {},
onResponse: (prompt) {},
onError: (prompt) {},
),
modules: [
Example(),
],
);
copied to clipboard
NOTE The requestTypeName parameter is an identifier in the JSON content that matches the correct module for the returned data.
Connection #
To initiate the WebSocket connection, use the following code:
CCWebSocket.connect();
copied to clipboard
Module Usage #
To send a request through a module:
CCWebSocket.getModule<Example>().request(
body: {
"request_type": "Unknown",
},
);
copied to clipboard
Example Module #
You can create your own module by defining a class like this:
class Example extends RequestModule {
@override
void request({required Map<String, dynamic> body}) {
super.request(body: body);
}
@override
void response(dynamic response) {}
}
copied to clipboard
or to handle only the response:
class Example extends RequestModule {
@override
void response(dynamic response) {}
}
copied to clipboard
Contributing #
If you want to contribute, please submit a pull request or open an issue. We value all kinds of feedback.
License #
This project is licensed under the MIT License. For more information, see the LICENSE file.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.