• MultiUser02 使用Xtra和Server建立连接


    global g_multiUserInstance

    on preparemovie
      
      
      if g_multiUserInstance<>0 then g_multiUserInstance = 0
      
      -- 1.创建新的MultiUser实例
      g_multiUserInstance = new Xtra("MultiUser")
      
      if g_multiUserInstance<>0 then
        
        -- 2.获取本机IP
        localip = g_multiUserInstance.getNetAddressCookie(0)
        
        -- 3.设置网络消息的处理回调函数
        -- param1, 回调
        -- param2, 回调所在的脚本对象,它可以是一个script member的名字,也可以是
        --         the name of a variable containing a behavior instance, 
        --         a parent script, 
        --         or a simple Lingo value to be passed to global scripts.
        -- param3, string,subject.过滤设置,只处理subject为该值的消息
        -- param4, string, senderid,过滤设置,只处理来自该movie的消息
        -- param5, bool, 是否将消息内容作为回调的参数,
        --         false,handler形如本例,需要手动getNetMessage()获得newmessage
        --         为true时,handler的形式为 on defaultHandler _newmessage
        --         注, 如果handler是behavior或parent, _newmessage位于me后
        errcode = g_multiUserInstance.setNetMessageHandler(#getMessageHandler, script"MovieScript") 
        
        
        -- 4.连接到服务器
        --   connectToNetServer的格式有三种,示例使用形式最简单的(string LocalID, string password, string serverIP, integer port, movidIDstring)    
        errcode = g_multiUserInstance.connectToNetServer ( "Client1", "pwd", "192.168.0.54", 1626, "TestMUS" )
        -- 1)connectToNetServer(userNameString, passwordString, serverIDString, portNumber, movieIDString {, #mode} {, encryptionKey}) 
        -- 2)connectToNetServer(serverIDString, portNumber, [#userID: userNameString, #password: passwordString, #movieID: movieIDString] {, #mode} {, encryptionKey})
        -- 3)connectToNetServer([#logonInfo: [#userID: userNameString, #password: passwordString, #movieID: movieIDString], #remoteAddress: serverIDString {, #remoteTCPPort: serverPortNumber} {, #localAddress: clientIPAddress} {, #encryptionKey: encryptionKeyString}])
      end if
      
    end


    on startmovie
    end

    on mouseUp 
      sendMessage()
    end

    on stopmovie
      g_multiUserInstance = 0
    end


    -- 消息处理回调函数
    on getMessageHandler
      newMessage = g_multiUserInstance.getNetMessage()
      put newMessage
      
    end


    on sendMessage

       -- param1为@AllUsers,发送至所有客户端;param1形如system.server.getVersion,是调用服务器方法

      errcode = g_multiUserInstance.sendNetMessage( "Client1", "TEST", "I'm here")
    end



    on exitFrame  
      go to the frame
    end


  • 相关阅读:
    ssm框架之写一个springmvc拦截器
    面试中的谈谈对spring的理解
    idea导入maven项目,执行时报程序报找不到(对应的jar包都存在),解决方案
    安装 ttf mscorefonts安装程序后的软件安装"下载额外数据文件失败"
    WEB-INF文件访问问题
    Junit测试@FixMethodOrder调整测试顺序
    MySQL自增主键ID重新排序
    windows下mysql-8.0.13主从同步配置方案(读写分离)
    Linux下运行mysql命令提示command not found解决办法
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  • 原文地址:https://www.cnblogs.com/mumuliang/p/2312017.html
Copyright © 2020-2023  润新知