使用基于Twisted的套接字限制聊天室中的用户数量

IOS_DEV

我遵循了以下教程(http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server),并且得到了可以在下面看到的代码。此代码允许无限数量的客户端连接到聊天。我想做的是限制此客户端的数量,以使在同一聊天室中最多可以有两个用户聊天。

为此,我实际上只需要知道一件事:如何为每个客户端获取唯一的标识符。以后可以在功能for c in self.factory.clients: c.message(msg)使用该功能,以便仅将消息发送给我想要的客户端。

我将不胜感激!

# Import from Twisted
from twisted.internet.protocol import Factory, Protocol
from twisted.internet import reactor

# IphoneChat: our own protocol
class IphoneChat(Protocol):

    def connectionMade(self):
        self.factory.clients.append(self)
        print "Clients are ", self.factory.clients

    def connectionLost(self, reason):
        self.factory.clients.remove(self)

    def dataReceived(self, data):
        a = data.split(':')
        print a

        if len(a) > 1:
            command = a[0]
            content = a[1]

            msg = ""
            if command == "iam":
                self.name = content

            elif command == "msg":
                msg = self.name + ": " + content

                for c in self.factory.clients:
                    c.message(msg)

    def message(self, message):
        self.transport.write(message + '\n')


# Factory: handles all the socket connections
factory = Factory()
factory.clients = []
factory.protocol = IphoneChat

# Reactor: listens to factory
reactor.listenTCP(80, factory)
print "Iphone Chat server started"
reactor.run();
姆吉耶尔

尝试以下操作:在中connectionMade,如果客户端数量已经为2,请关闭新连接:

if len(self.factory.clients) == 2:
  self.transport.loseConnection()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Firebase:获取当前在聊天室(或任何抽象资源)中的用户数量

来自分类Dev

Skype(免费)群组视频聊天中的最大用户数量

来自分类Dev

在 expressjs 中,如何限制可以同时发出请求的用户数量?

来自分类Dev

当时情况下加入的用户数量?

来自分类Dev

Google Analytics(分析)显示错误的用户数量

来自分类Dev

在网页上显示用户数量

来自分类Dev

JMeter 用户数量和提升 - 可行的组合

来自分类Dev

寻找新用户数量

来自分类Dev

如何获得Django中关注我的用户数量

来自分类Dev

如何获得Django中关注我的用户数量

来自分类Dev

使用pandas和numpy参数化堆栈溢出的用户数量和声誉

来自分类Dev

查找使用PHP为给定产品投票的用户数量

来自分类Dev

如何使用 Jquery 和 JSON API 获取最近 3 个月登录的用户数量?

来自分类Dev

使用SQL JOIN找出属于一个州的城市数量和用户数量

来自分类Dev

如何使用套接字IO检查有多少参与者连接到我的聊天室

来自分类Dev

代替为所有用户运行快照,如何设置多个查询以限制发送到设备的用户数量?

来自分类Dev

使用 Firebase 将用户转发到特定聊天室

来自分类Dev

如何在AppleScript中使用javascript返回聊天室中的用户列表

来自分类Dev

如何知道我的应用程序的Beta用户数量?

来自分类Dev

Python PyQt根据旋转框上选择的用户数量创建组合框

来自分类Dev

如何衡量连接到Citrix服务器场的用户数量

来自分类Dev

如何计算用户数量和思考时间进行负载测试

来自分类Dev

加特林:如何在after {}挂钩中增加用户数量?

来自分类Dev

我应该如何计算对特定movieId进行评分的用户数量?

来自分类Dev

显示我的用户数量并将其显示在徽章上。(Codeigniter)

来自分类Dev

私人BitTorrent跟踪器如何监视上载/下载的用户数量?

来自分类Dev

Rails 4,可标记:查找具有相同标记的用户数量

来自分类Dev

获取用户数量取决于他们的年龄

来自分类Dev

当前Ubuntu桌面用户数量最准确的估计是什么?

Related 相关文章

  1. 1

    Firebase:获取当前在聊天室(或任何抽象资源)中的用户数量

  2. 2

    Skype(免费)群组视频聊天中的最大用户数量

  3. 3

    在 expressjs 中,如何限制可以同时发出请求的用户数量?

  4. 4

    当时情况下加入的用户数量?

  5. 5

    Google Analytics(分析)显示错误的用户数量

  6. 6

    在网页上显示用户数量

  7. 7

    JMeter 用户数量和提升 - 可行的组合

  8. 8

    寻找新用户数量

  9. 9

    如何获得Django中关注我的用户数量

  10. 10

    如何获得Django中关注我的用户数量

  11. 11

    使用pandas和numpy参数化堆栈溢出的用户数量和声誉

  12. 12

    查找使用PHP为给定产品投票的用户数量

  13. 13

    如何使用 Jquery 和 JSON API 获取最近 3 个月登录的用户数量?

  14. 14

    使用SQL JOIN找出属于一个州的城市数量和用户数量

  15. 15

    如何使用套接字IO检查有多少参与者连接到我的聊天室

  16. 16

    代替为所有用户运行快照,如何设置多个查询以限制发送到设备的用户数量?

  17. 17

    使用 Firebase 将用户转发到特定聊天室

  18. 18

    如何在AppleScript中使用javascript返回聊天室中的用户列表

  19. 19

    如何知道我的应用程序的Beta用户数量?

  20. 20

    Python PyQt根据旋转框上选择的用户数量创建组合框

  21. 21

    如何衡量连接到Citrix服务器场的用户数量

  22. 22

    如何计算用户数量和思考时间进行负载测试

  23. 23

    加特林:如何在after {}挂钩中增加用户数量?

  24. 24

    我应该如何计算对特定movieId进行评分的用户数量?

  25. 25

    显示我的用户数量并将其显示在徽章上。(Codeigniter)

  26. 26

    私人BitTorrent跟踪器如何监视上载/下载的用户数量?

  27. 27

    Rails 4,可标记:查找具有相同标记的用户数量

  28. 28

    获取用户数量取决于他们的年龄

  29. 29

    当前Ubuntu桌面用户数量最准确的估计是什么?

热门标签

归档