当前位置: 首页 > news >正文

做静态网站用什么软件自己编写代码建设微网站

做静态网站用什么软件,自己编写代码建设微网站,建筑通,广州企业推广网站建设文章目录 一、Socket.IO库简单使用说明1. 后端 Flask Flask-SocketIO2. Android 客户端集成 Socket.IO3. 布局文件注意事项 二、接受服务器消息的二种方法1. 客户端接收通过 emit 发送的消息功能使用场景后端代码#xff08;Flask-SocketIO#xff09;客户端代码#xff08… 文章目录 一、Socket.IO库简单使用说明1. 后端 Flask Flask-SocketIO2. Android 客户端集成 Socket.IO3. 布局文件注意事项 二、接受服务器消息的二种方法1. 客户端接收通过 emit 发送的消息功能使用场景后端代码Flask-SocketIO客户端代码Android StudioJava 2. 客户端接收通过 return 发送的响应功能使用场景后端代码Flask-SocketIO客户端代码Android StudioJava 4. 二者的区别 拓展room与namespace命名空间Namespace功能示例 房间Rooms功能示例 总结拓展 Socket.IO 是一个流行的实时通信库支持 WebSocket 和其他回退机制如长轮询能够在客户端和服务器之间实现低延迟的双向通信。 一、Socket.IO库简单使用说明 1. 后端 Flask Flask-SocketIO 首先确保你的 Flask 后端已经安装了 Flask-SocketIO。你可以通过以下命令安装 pip install Flask Flask-SocketIO以下是一个简单的 Flask 后端示例代码 from flask import Flask from flask_socketio import SocketIO, emitapp Flask(__name__) app.config[SECRET_KEY] your_secret_key socketio SocketIO(app)app.route(/) def index():return Hello, World!socketio.on(message) def handle_message(msg):print(Received message: msg)emit(response, Echo: msg, broadcastTrue)if __name__ __main__:socketio.run(app, debugTrue)2. Android 客户端集成 Socket.IO 在 Android Studio 中你需要添加 Socket.IO 的依赖。在 build.gradle 文件中添加以下内容 dependencies {implementation io.socket:socket.io-client:1.4.0 }确保你的应用有网络权限。在 AndroidManifest.xml 文件中添加以下内容 uses-permission android:nameandroid.permission.INTERNET /以下是一个简单的 Android 客户端示例 import io.socket.client.IO; import io.socket.client.Socket; import io.socket.emitter.Emitter;public class MainActivity extends AppCompatActivity {private Socket socket;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);try {socket IO.socket(http://yourserver.com/socket.io);socket.connect();socket.on(response, new Emitter.Listener() {Overridepublic void call(Object... args) {runOnUiThread(new Runnable() {Overridepublic void run() {TextView messagesView findViewById(R.id.messagesView);messagesView.append((String) args[0] \n);}});}});Button sendButton findViewById(R.id.sendButton);sendButton.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {EditText messageInput findViewById(R.id.messageInput);String message messageInput.getText().toString();if (!message.isEmpty()) {socket.emit(message, message);messageInput.setText();}}});} catch (Exception e) {e.printStackTrace();}}Overrideprotected void onDestroy() {super.onDestroy();socket.disconnect();} }3. 布局文件 在 res/layout/activity_main.xml 中定义一个简单的布局 LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:padding16dpEditTextandroid:idid/messageInputandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hintType a message /Buttonandroid:idid/sendButtonandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textSend /TextViewandroid:idid/messagesViewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textMessages will appear hereandroid:textSize16sp //LinearLayoutsocket.on 和 socket.emit 特性socket.onsocket.emit功能监听来自服务器的事件向服务器发送事件方向从服务器到客户端从客户端到服务器回调注册回调函数以处理接收到的事件可选地注册回调函数以接收服务器的响应使用场景接收服务器推送的消息如通知、广播等发送请求到服务器如提交数据、请求信息等 注意事项 服务器地址确保在 Android 客户端中使用的服务器地址与 Flask 后端的地址一致。网络权限确保在 AndroidManifest.xml 中添加了网络权限。线程安全在回调函数中更新 UI 时确保使用 runOnUiThread。 二、接受服务器消息的二种方法 emit 后端使用 emit 发送事件和数据。客户端通过 socket.on 监听事件并接收数据。 return 后端在事件处理函数中使用 return 发送响应。客户端通过 emit 方法的回调函数接收响应。 1. 客户端接收通过 emit 发送的消息 当后端使用 emit 发送消息时客户端可以通过 socket.on 监听对应的事件来接收消息。 功能 显式发送事件emit 可以发送自定义事件并携带数据。广播或单播可以指定发送给所有客户端或者特定的客户端。 使用场景 广播消息向所有连接的客户端发送消息。单播消息向特定的客户端发送消息。复杂交互需要发送多个事件或不同类型的数据时。 后端代码Flask-SocketIO from flask import Flask from flask_socketio import SocketIO, emitapp Flask(__name__) socketio SocketIO(app)socketio.on(client_message) def handle_client_message(data):print(Received message:, data)emit(server_message, Hello from Server!) # 使用 emit 发送消息if __name__ __main__:socketio.run(app, host0.0.0.0, port5000)客户端代码Android StudioJava import io.socket.client.IO; import io.socket.client.Socket; import io.socket.emitter.Emitter;public class MainActivity extends AppCompatActivity {private Socket mSocket;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);try {mSocket IO.socket(http://your-server-address:5000);mSocket.connect();// 监听服务器通过 emit 发送的消息mSocket.on(server_message, new Emitter.Listener() {Overridepublic void call(Object... args) {String message (String) args[0];runOnUiThread(() - {Toast.makeText(MainActivity.this, Received via emit: message, Toast.LENGTH_SHORT).show();});}});} catch (Exception e) {e.printStackTrace();}}Overrideprotected void onDestroy() {super.onDestroy();mSocket.disconnect();mSocket.off(server_message);} }2. 客户端接收通过 return 发送的响应 当后端使用 return 发送响应时客户端可以通过 emit 方法的回调函数接收响应。 功能 返回响应直接返回一个值或字符串。简单交互适用于简单的场景客户端不需要复杂的消息交互。 使用场景 简单响应客户端只需要一个简单的响应例如确认消息已接收。快速反馈快速返回一个结果不需要额外的事件处理。 后端代码Flask-SocketIO from flask import Flask from flask_socketio import SocketIOapp Flask(__name__) socketio SocketIO(app)socketio.on(client_message) def handle_client_message(data):print(Received message:, data)return Server received your message! # 使用 return 发送响应if __name__ __main__:socketio.run(app, host0.0.0.0, port5000)客户端代码Android StudioJava import io.socket.client.IO; import io.socket.client.Socket; import io.socket.emitter.Emitter;public class MainActivity extends AppCompatActivity {private Socket mSocket;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);try {mSocket IO.socket(http://your-server-address:5000);mSocket.connect();// 发送消息并接收通过 return 发送的响应mSocket.emit(client_message, Hello from Android!, new Emitter.Ack() {Overridepublic void call(Object... args) {if (args.length 0) {String response (String) args[0];runOnUiThread(() - {Toast.makeText(MainActivity.this, Received via return: response, Toast.LENGTH_SHORT).show();});}}});} catch (Exception e) {e.printStackTrace();}}Overrideprotected void onDestroy() {super.onDestroy();mSocket.disconnect();} }4. 二者的区别 特性emitreturn功能显式发送事件携带数据直接返回响应方向从服务器到客户端从服务器到客户端使用场景广播或单播消息复杂交互简单响应快速反馈示例emit(server_message, Hello from Server!)return Server received your message! 如果你需要向客户端发送复杂的事件或广播消息使用 emit。如果客户端只需要一个简单的响应使用 return。 拓展room与namespace 在 Flask-SocketIO 中命名空间Namespace和房间Rooms是两个非常重要的功能它们可以更好地组织和管理实时通信。 命名空间Namespace 命名空间允许在同一个 Socket.IO 服务器上创建多个独立的通信通道。每个命名空间都可以有自己的事件和逻辑互不干扰。这在大型应用中非常有用可以将不同的功能模块分开例如聊天功能和通知功能。 功能示例 from flask_socketio import emitsocketio.on(message, namespace/chat) def handle_chat_message(msg):emit(message, msg, broadcastTrue, namespace/chat)socketio.on(notification, namespace/notifications) def handle_notification(msg):emit(notification, msg, broadcastTrue, namespace/notifications)在上面的代码中/chat 和 /notifications 是两个不同的命名空间分别用于处理聊天消息和通知。 房间Rooms 房间是命名空间的进一步细分允许将用户分组以便向特定的用户组发送消息。这在聊天室、多人游戏等场景中非常有用。 功能示例 from flask_socketio import join_room, leave_roomsocketio.on(join) def on_join(data):username data[username]room data[room]join_room(room)send(username has entered the room., toroom)socketio.on(leave) def on_leave(data):username data[username]room data[room]leave_room(room)send(username has left the room., toroom)在上面的代码中join_room 和 leave_room 函数用于管理用户加入和离开房间。send 函数的 to 参数用于指定消息发送到的房间。 总结 命名空间用于创建独立的通信通道适合将不同的功能模块分开。房间用于将用户分组适合向特定用户组发送消息。 通过合理使用命名空间和房间可以构建更加模块化和高效的实时通信应用。 拓展 room功能实现用户之间消息的发送
http://www.pierceye.com/news/336857/

相关文章:

  • 雄安移动网站建设php网站用什么软件
  • 网站开发税收分类山东平台网站建设制作
  • 企业自助建站网手机怎么制作钓鱼网站
  • 家乡ppt模板免费下载网站x wordpress 视差 主题
  • 淄博张店外贸建站公司手机微信网页版
  • 网站建设全域云网站建设流程详解
  • 梅州市五华县建设银行网站写作网站招聘
  • 博物馆网站建设情况工业互联网龙头公司排名
  • 做网站用什么系统做网站开发电脑配置
  • 企业网站推广的主要方法上海中汇建设发展有限公司网站
  • 郑州做网站公司电话网站是否有管理员权限
  • 开发建设信息的网站广东省建设厅的注册中心网站首页
  • 用cms做的网站 的步骤有域名如何做网站
  • h5个人网站源码江苏启安建设集团有限公司网站
  • 网站开发net教程网站后台登陆路径
  • 织梦网站模板安装教程国外设计有名网站
  • 最专业企业营销型网站建设南充 网站开发
  • 国外有哪些网站做推广的比较好北京展览馆网站建设
  • 国外英语写作网站网站后台 刷新
  • 如何制作自己的网站详情页设计
  • 南京免费自助建站模板wordpress 增加侧边栏
  • 做信息分类网站难吗广告设计公司有哪些
  • 做seo网站优化多少钱网站开发客户哪里找
  • 做网站一定要云解析吗海南公司注册网站
  • 建站之家官网办公装修设计
  • 永康网站建设的公司wordpress 图片分类
  • 网站商务通弹出窗口图片更换设置wordpress4.9 多站点
  • 如何仿制一个网站注册商标设计
  • 网站建设属于什么岗位旅游网站设计模板
  • 自己做的网站怎么链接火车头采集软件开发模型是什么