html实现网页多人聊天,实现websocket多人聊天,很简单(示例代码)

go?

房间号相同的人能聊天

Flask Server

# -*- coding: utf-8 -*-

from flask import Flask, render_template

from flask_socketio import SocketIO, rooms

app = Flask(__name__)

app.config[‘SECRET_KEY‘] = ‘sldjfalsfnwlemnw‘

socketio = SocketIO(app)

@app.route(‘/chats/‘)

def index(room_id):

return render_template(‘chat.html‘, room_id=room_id)

@socketio.on(‘chat_send‘)

def chat_send(json):

print ‘chat_send: ‘, str(json)

room_id = None

if json.get(‘room_id‘, None):

room_id = json[‘room_id‘]

socketio.emit(‘chat_recv_{room_id}‘.format(room_id=room_id), json)

if __name__ == ‘__main__‘:

socketio.run(app, host=‘0.0.0.0‘, port=8080, debug=True)

templates/chat.html

Python Chat App Yo

integrity="sha384-BVYiiSIFeK1dGmJRAkycuHA

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现在线多人聊天可以使用Java中的WebSocket协议,以下是一个简单示例代码: 服务端代码: ```java import java.io.IOException; import java.util.Collections; import java.util.HashSet; import java.util.Set; import javax.websocket.OnClose; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/chat") public class ChatServer { private static final Set<Session> sessions = Collections.synchronizedSet(new HashSet<Session>()); @OnOpen public void onOpen(Session session) { sessions.add(session); } @OnMessage public void onMessage(String message, Session session) throws IOException { synchronized (sessions) { for (Session s : sessions) { s.getBasicRemote().sendText(message); } } } @OnClose public void onClose(Session session) { sessions.remove(session); } } ``` 客户端代码: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URI; import java.net.URISyntaxException; import javax.websocket.ClientEndpoint; import javax.websocket.CloseReason; import javax.websocket.ContainerProvider; import javax.websocket.DeploymentException; import javax.websocket.OnClose; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.WebSocketContainer; @ClientEndpoint public class ChatClient { private static Object waitLock = new Object(); @OnOpen public void onOpen(Session session) { System.out.println("Connected to server"); } @OnMessage public void onMessage(String message, Session session) { System.out.println(message); } @OnClose public void onClose(Session session, CloseReason closeReason) { System.out.println(String.format("Session %s close because of %s", session.getId(), closeReason)); synchronized (waitLock) { waitLock.notify(); } } public static void main(String[] args) { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); String uri = "ws://localhost:8080/chat"; try { Session session = container.connectToServer(ChatClient.class, new URI(uri)); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line = ""; while (!line.equals("exit")) { line = reader.readLine(); session.getBasicRemote().sendText(line); } session.close(); } catch (DeploymentException | URISyntaxException | IOException e) { e.printStackTrace(); } } } ``` 在本地运行服务端(如Tomcat),然后运行客户端即可进行在线多人聊天。注意修改服务端代码中的端口号和路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值